Repository navigation
Build LAST from a submodule - #2034
Merged
Merged
Conversation
cactus-pangenome and cactus-minigraph train their scoring with LAST by default (<graphmap lastTrain>), and progressive cactus is to train lastz's with it too. Build LAST with cactus, from a submodule alongside lastz and red, instead of downloading it with the pangenome tools. The submodule is pinned at 1651, the version downloadPangenomeTools has been cloning and building. The rule carries over the script's two makefile patches, which let cactus's CXXFLAGS (its CPU baseline) and jemalloc reach lastal and lastdb. The build still fails if an upstream change stops the first patch from matching. On ARM, where cactus's own make now builds LAST, the rule also drops LAST's -msse4, which only x86 compilers take, as LAST's README does for ARM. The Docker image, CI and the binary release all build LAST through make. The release's check-static covers its binaries, as the script's own ldd check did. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Build LAST with cactus, from a submodule, instead of downloading and building it in
build-tools/downloadPangenomeTools.Why: cactus-pangenome and cactus-minigraph already train their scoring with LAST by default (
<graphmap lastTrain>). #2027 would have progressive cactus train lastz's scoring with it too, on by default. LAST is then as central to cactus as lastz, so it should be built the same way.What changes
submodules/last, from gitlab.com/mcfrith/last, pinned at 1651. That's the version the download script was building, so nothing changes in behaviour.suball.lastrule builds LAST alongside lastz and red. It installslastal,lastdb,last-trainandlast-postmaskintobin/.-msse4, which ARM compilers reject, as LAST's README advises. Without that, plainmakewould now fail on ARM.make. CI already clones submodules recursively. The release'scheck-staticcovers the LAST binaries, in place of the download script's ownlddcheck.Existing clones need
git submodule update --initbefore building.Testing
On x86:
lastal 1651builds with cactus's CPU flags (-march=x86-64-v3) and links jemalloc the same way Red and lastz do.lastdb -c -R10andlast-train --revsym --matsym --gapsym -C2ran on two evolver mammal genomes.Not tested: the ARM build, and a full Docker build. CI's
make dockerwill be the first.#2027 has this same commit at its base, so the commit drops out of #2027's diff once this merges.
🤖 Generated with Claude Code