scripts/varios/musl-static-nnn-build.sh
Tuxliban Torvalds 379798d954 Renombrado de scripts
Se ha añadido la extensión .sh para poder identificar que se tratan de script de shell
2023-05-05 18:50:15 -06:00

42 lines
1.3 KiB
Bash
Executable file

#!/bin/sh
BIN=nnn.static-musl
# Instalar paquetes básicos de desarrollo
doas xbps-install -Sy pkgconf gcc libtool automake
# Crear directorio donde se gurdarán las bibliotecas estáticas para compilar nnn
if [ ! -d "./nnn-libs" ]; then
mkdir nnn-libs
else
rm -vf nnn-libs/*
fi
# Obtener netbsd-curses y compilar bibliotecas estáticas
[ ! -d "./netbsd-curses" ] && git clone https://github.com/sabotage-linux/netbsd-curses
cd netbsd-curses || exit
git checkout v0.3.2
make CC=gcc CFLAGS="-O3 -fPIC" LDFLAGS=-static all-static -j$(($(nproc)+1))
cp libcurses/libcurses.a libterminfo/libterminfo.a ../nnn-libs/
make clean
cd ..
# Compilar la biblioteca estática de musl-fts
[ ! -d "./musl-fts" ] && git clone https://github.com/void-linux/musl-fts --depth=1
cd musl-fts || exit
./bootstrap.sh
./configure
make CC=gcc CFLAGS=-O3 LDFLAGS=-static -j$(($(nproc)+1))
cp .libs/libfts.a ../nnn-libs/
cd ..
# Compilar nnn estáticamente
[ -e "./netbsd-curses" ] || rm "$BIN"
gcc -O3 -DNORL -DNOMOUSE -std=c11 -Wall -Wextra -Wshadow -I./netbsd-curses/libcurses -I./musl-fts -o "$BIN" \
src/nnn.c -Wl,-Bsymbolic-functions -lpthread -L./nnn-libs -lcurses -lterminfo -lfts -static
# Despojar binario de símbolos de depuración
strip "$BIN"
doas xbps-remove -Ry pkgconf gcc libtool automake
doas rm -r netbsd-curses musl-fts