Skip to content

Instantly share code, notes, and snippets.

@G-UK
Last active September 30, 2021 22:43
Show Gist options
  • Save G-UK/4c46d13d2b55222615f7d82a38df6f92 to your computer and use it in GitHub Desktop.
Save G-UK/4c46d13d2b55222615f7d82a38df6f92 to your computer and use it in GitHub Desktop.
Gridcoin Build - One Command

These are setup for building for my specific machines and use my network mounts for transferring files, they may however be useful as reference for someone else.

Build client

x64 PC Debian WSL (Bullseye) running on Windows 10, GCC version 10, MingW version 6 (GCC 8) - Held due to build problem on version 8(GCC 10)

Prod client

Raspberry Pi 4 (4GB) Arm64 Kernel and userland Debian Bullseye

Testnet clients

Raspberry Pi 3B (1GB) Arm64 Kernel and userland (Client running Native Arm64) Debian Bullseye

Raspberry Pi 3B (1GB) Arm64 Kernel and userland (Client running Multiarch ArmHF) Debian Bullseye

x64 PC Debian Bullseye

x64 PC Windows 10 (Client running as 64 bit)

x64 PC Windows 10 (Client Running as 32 bit)

Prep Clean Production Build Folder

Clean build folder needed when depends are updated.

sudo rm -r ~/GRC-Prod && \
mkdir ~/GRC-Prod && \
cd ~/GRC-Prod && \
git clone https://github.com/gridcoin-community/Gridcoin-Research && \
cd Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/master && \
./autogen.sh && \
cd depends && \
make -j6 HOST=aarch64-linux-gnu GCCFLAGS="-march=armv8-a+crc -mtune=cortex-a72" BDB_53=1 && \
cd ~/

Pi4 Arm64 one command (Production)

cd ~/GRC-Prod/Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/master && \
./autogen.sh && \
./configure --prefix=`pwd`/depends/aarch64-linux-gnu LDFLAGS=-static-libstdc++ --enable-glibc-back-compat --enable-reduce-exports --enable-qt59 --with-incompatible-bdb CXXFLAGS="-march=armv8-a+crc -mtune=cortex-a72" CFLAGS="-march=armv8-a+crc -mtune=cortex-a72" && \
make -j6 && \
aarch64-linux-gnu-strip ./src/qt/gridcoinresearch && \
aarch64-linux-gnu-strip ./src/gridcoinresearchd && \
sudo mount -t drvfs N: /mnt/n && \
sudo cp ./src/qt/gridcoinresearch /mnt/n/Gridcoin/ && \
sudo cp ./src/gridcoinresearchd /mnt/n/Gridcoin/ && \
make clean

Prep Clean Testnet Build Folder

Clean build folder needed when depends are updated.

sudo rm -r ~/GRC-Testnet && \
mkdir ~/GRC-Testnet && \
cd ~/GRC-Testnet && \
git clone https://github.com/gridcoin-community/Gridcoin-Research && \
cd Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/testnet && \
./autogen.sh && \
cd depends && \
sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" && \
make -j6 HOST=aarch64-linux-gnu GCCFLAGS="-march=armv8-a+crypto+crc -mtune=cortex-a53" BDB_53=1 && \
make -j6 HOST=arm-linux-gnueabihf GCCFLAGS="-march=armv8-a+crypto+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8" BDB_53=1 && \
make -j6 HOST=x86_64-linux-gnu BDB_53=1 && \
make -j6 HOST=x86_64-w64-mingw32 && \
make -j6 HOST=i686-w64-mingw32 && \
cd ~/

Pi3B Arm64 one command (Testnet)

cd ~/GRC-Testnet/Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/testnet && \
./autogen.sh && \
./configure --prefix=`pwd`/depends/aarch64-linux-gnu LDFLAGS=-static-libstdc++ --enable-glibc-back-compat --enable-reduce-exports --enable-qt59 --with-incompatible-bdb CXXFLAGS="-march=armv8-a+crypto+crc -mtune=cortex-a53" CFLAGS="-march=armv8-a+crypto+crc -mtune=cortex-a53" && \
make -j6 && \
aarch64-linux-gnu-strip ./src/qt/gridcoinresearch && \
aarch64-linux-gnu-strip ./src/gridcoinresearchd && \
sudo mount -t drvfs N: /mnt/n && \
sudo cp ./src/qt/gridcoinresearch /mnt/n/Gridcoin/ && \
sudo cp ./src/gridcoinresearchd /mnt/n/Gridcoin/ && \
make clean

Pi3B ArmHF one command (Testnet)

cd ~/GRC-Testnet/Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/testnet && \
./autogen.sh && \
./configure --prefix=`pwd`/depends/arm-linux-gnueabihf LDFLAGS=-static-libstdc++ --enable-glibc-back-compat --enable-reduce-exports --enable-qt59 --with-incompatible-bdb CXXFLAGS="-march=armv8-a+crypto+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8" CFLAGS="-march=armv8-a+crypto+crc -mtune=cortex-a53 -mfpu=crypto-neon-fp-armv8" && \
make -j6 && \
arm-linux-gnueabihf-strip ./src/qt/gridcoinresearch && \
arm-linux-gnueabihf-strip ./src/gridcoinresearchd && \
sudo mount -t drvfs N: /mnt/n && \
sudo cp ./src/qt/gridcoinresearch /mnt/n/Gridcoin/ && \
sudo cp ./src/gridcoinresearchd /mnt/n/Gridcoin/ && \
make clean

Linux x86_64 one command (Testnet)

cd ~/GRC-Testnet/Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/testnet && \
./autogen.sh && \
./configure --prefix=`pwd`/depends/x86_64-linux-gnu LDFLAGS=-static-libstdc++ --enable-glibc-back-compat --enable-reduce-exports --enable-qt59 --with-incompatible-bdb && \
make -j6 && \
x86_64-linux-gnu-strip ./src/qt/gridcoinresearch && \
x86_64-linux-gnu-strip ./src/gridcoinresearchd && \
sudo mount -t drvfs N: /mnt/n && \
sudo cp ./src/qt/gridcoinresearch /mnt/n/Gridcoin/ && \
sudo cp ./src/gridcoinresearchd /mnt/n/Gridcoin/ && \
make clean

Windows 64bit (x86_64) one command (Testnet)

cd ~/GRC-Testnet/Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/testnet && \
./autogen.sh && \
sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" && \
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site ./configure --prefix=/ --enable-qt59 && \
make -j6 && \
make deploy && \
sudo mount -t drvfs N: /mnt/n && \
sudo cp release/*setup.exe /mnt/n/Gridcoin/ && \
make clean

Windows 32bit (i686) one command (Testnet)

cd ~/GRC-Testnet/Gridcoin-Research && \
git fetch --all && \
git reset --hard origin/testnet && \
./autogen.sh && \
sudo bash -c "echo 0 > /proc/sys/fs/binfmt_misc/status" && \
CONFIG_SITE=$PWD/depends/i686-w64-mingw32/share/config.site ./configure --prefix=/ --enable-qt59 && \
make -j6 && \
make deploy && \
sudo mount -t drvfs N: /mnt/n && \
sudo cp release/*setup.exe /mnt/n/Gridcoin/ && \
make clean

Linux Install

sudo mount -a && \
sudo rm /usr/local/bin/gridcoin* && \
sudo cp /mnt/NAS/Gridcoin/gridcoin* /usr/local/bin/ && \
sudo chmod +x /usr/local/bin/gridcoin*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment