From 0f0cccc2b622bed3758c1cec233540eb117c1c7c Mon Sep 17 00:00:00 2001 From: tildearrow Date: Wed, 1 May 2024 14:53:31 -0500 Subject: [PATCH] add ARM/AArch64 Linux release scripts --- scripts/Cross-Linux-aarch64.cmake | 16 ++++++++ scripts/release-linux-aarch64.sh | 61 +++++++++++++++++++++++++++++++ scripts/release-linux-armhf.sh | 61 +++++++++++++++++++++++++++++++ 3 files changed, 138 insertions(+) create mode 100644 scripts/Cross-Linux-aarch64.cmake create mode 100755 scripts/release-linux-aarch64.sh create mode 100755 scripts/release-linux-armhf.sh diff --git a/scripts/Cross-Linux-aarch64.cmake b/scripts/Cross-Linux-aarch64.cmake new file mode 100644 index 0000000000..8b858cb173 --- /dev/null +++ b/scripts/Cross-Linux-aarch64.cmake @@ -0,0 +1,16 @@ +set(CMAKE_SYSTEM_NAME Linux) +set(CMAKE_SYSTEM_PROCESSOR aarch64) + +set(TARGET_PREFIX aarch64-linux-gnu) + +set(CMAKE_C_COMPILER ${TARGET_PREFIX}-gcc) +set(CMAKE_CXX_COMPILER ${TARGET_PREFIX}-g++) +set(PKG_CONFIG_EXECUTABLE ${TARGET_PREFIX}-pkg-config) + +set(CMAKE_FIND_ROOT_PATH /usr/${TARGET_PREFIX} /usr/lib/${TARGET_PREFIX}) +set(CMAKE_LIBRARY_ARCHITECTURE ${TARGET_PREFIX}) + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE BOTH) diff --git a/scripts/release-linux-aarch64.sh b/scripts/release-linux-aarch64.sh new file mode 100755 index 0000000000..102530d0cb --- /dev/null +++ b/scripts/release-linux-aarch64.sh @@ -0,0 +1,61 @@ +#!/bin/bash +# make linux release +# run on an Ubuntu 20.04 machine or VM for best results. + +if [ ! -e /tmp/furnace ]; then + ln -s "$PWD" /tmp/furnace || exit 1 +fi + +cd /tmp/furnace + +if [ ! -e a64build ]; then + mkdir a64build || exit 1 +fi + +cd a64build + +cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/furnace/scripts/Cross-Linux-aarch64.cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O3" -DCMAKE_CXX_FLAGS="-O3 -Wall -Wextra -Wno-unused-parameter -Werror" -DWITH_PORTAUDIO=OFF -DWITH_DEMOS=ON -DWITH_INSTRUMENTS=ON -DWITH_WAVETABLES=ON .. || exit 1 +make -j4 || exit 1 + +cd .. + +mkdir -p release/linuxa64/furnace || exit 1 +cd a64build + +make DESTDIR=/tmp/furnace/release/linuxa64/furnace install || exit 1 + +cd ../release/linuxa64/furnace + +cp -v ../../../res/logo.png .DirIcon || exit 1 +#cp -v ../../../res/furnace.desktop . || exit 1 + +cd usr + +mv bin/furnace .. || exit 1 +rmdir bin || exit 1 + +rm -r share/applications +rm -r share/doc +mv share/icons .. +rm -r share/licenses +rm -r share/metainfo + +mv share/furnace/demos .. +mv share/furnace/instruments .. +mv share/furnace/wavetables .. +rm -r share/furnace || exit 1 +rm -r share || exit 1 + +cd .. + +cp ../../../LICENSE . || exit 1 +cp ../../../res/releaseReadme/stable-linux.txt README.md || exit 1 +cp -r ../../../papers papers || exit 1 +curl "https://tildearrow.org/furnace/doc/latest/manual.pdf" > manual.pdf +rmdir usr || exit 1 + +strip -s furnace + +cd .. + +tar -zcv -f furnace.tar.gz furnace diff --git a/scripts/release-linux-armhf.sh b/scripts/release-linux-armhf.sh new file mode 100755 index 0000000000..4aba063c7f --- /dev/null +++ b/scripts/release-linux-armhf.sh @@ -0,0 +1,61 @@ +#!/bin/bash +# make linux release +# run on an Ubuntu 20.04 machine or VM for best results. + +if [ ! -e /tmp/furnace ]; then + ln -s "$PWD" /tmp/furnace || exit 1 +fi + +cd /tmp/furnace + +if [ ! -e armbuild ]; then + mkdir armbuild || exit 1 +fi + +cd armbuild + +cmake -DCMAKE_TOOLCHAIN_FILE=/tmp/furnace/scripts/Cross-Linux-armhf.cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-O3" -DCMAKE_CXX_FLAGS="-O3 -Wall -Wextra -Wno-unused-parameter -Werror" -DWITH_PORTAUDIO=OFF -DWITH_DEMOS=ON -DWITH_INSTRUMENTS=ON -DWITH_WAVETABLES=ON .. || exit 1 +make -j4 || exit 1 + +cd .. + +mkdir -p release/linuxarm/furnace || exit 1 +cd armbuild + +make DESTDIR=/tmp/furnace/release/linuxarm/furnace install || exit 1 + +cd ../release/linuxarm/furnace + +cp -v ../../../res/logo.png .DirIcon || exit 1 +#cp -v ../../../res/furnace.desktop . || exit 1 + +cd usr + +mv bin/furnace .. || exit 1 +rmdir bin || exit 1 + +rm -r share/applications +rm -r share/doc +mv share/icons .. +rm -r share/licenses +rm -r share/metainfo + +mv share/furnace/demos .. +mv share/furnace/instruments .. +mv share/furnace/wavetables .. +rm -r share/furnace || exit 1 +rm -r share || exit 1 + +cd .. + +cp ../../../LICENSE . || exit 1 +cp ../../../res/releaseReadme/stable-linux.txt README.md || exit 1 +cp -r ../../../papers papers || exit 1 +curl "https://tildearrow.org/furnace/doc/latest/manual.pdf" > manual.pdf +rmdir usr || exit 1 + +strip -s furnace + +cd .. + +tar -zcv -f furnace.tar.gz furnace