Meson er et åpen kildekode byggesystem ment å være både ekstremt raskt og så brukervennlig som mulig.
Kompiler Meson med følgende kommando:
pip3 wheel -w dist --no-cache-dir --no-build-isolation --no-deps $PWD
Testpakken krever noen pakker utenfor omfanget av LFS.
Installer pakken:
pip3 install --no-index --find-links dist meson install -vDm644 data/shell-completions/bash/meson /usr/share/bash-completion/completions/meson install -vDm644 data/shell-completions/zsh/_meson /usr/share/zsh/site-functions/_meson
Betydningen av installasjonsparametrene:
-w
dist
Putter det opprettede wheels inn i dist mappen.
--find-links
dist
Installerer wheels fra dist
mappen.
Når man retter seg mot 32-bit eller x32-bit arkitekturene på 64-bit vil noen pakker som bruker Meson baserte byggesystemer noen ganger bruke feil arkitekturspesifikke innstillinger, bitstørrelser og pull-in biblioteker som ikke er ment for arkitekturen som er målet. Dette skjer ikke ofte, men krever komplekse løsninger for å løse uten kryss eller native filer. Feil kan variere fra lenking og utenfor grensene til annen kryptisk utdata.
Kryssfiler og native filer spesifiserer arkitekturspesifikk informasjon som enten ærlig og lurt forteller Meson hva målet eller verten er, slik at den bruker riktig informasjon og biblioteker. Opprett disse filene nå:
mkdir -pv /usr/share/meson/cross
mkdir -pv /usr/share/meson/native
for i in {cross/lib32,native/x86}; do
cat > /usr/share/meson/$i << "EOF"
[binaries]
c = ['gcc', '-m32']
cpp = ['g++', '-m32']
rust = ['rustc', '--target', 'i686-unknown-linux-gnu']
pkg-config = 'i686-pc-linux-gnu-pkg-config'
ar = '/usr/bin/ar'
strip = '/usr/bin/strip'
cups-config = 'cups-config'
llvm-config = 'llvm-config'
exe_wrapper = ''
[built-in options]
libdir = 'lib32'
[properties]
sizeof_void* = 4
sizeof_long = 4
[host_machine]
system = 'linux'
subsystem = 'linux'
kernel = 'linux'
cpu_family = 'x86'
cpu = 'i686'
endian = 'little'
EOF
done
for i in {cross/libx32,native/x32}; do
cat > /usr/share/meson/$i << "EOF"
[binaries]
c = ['gcc', '-mx32']
cpp = ['g++', '-mx32']
rust = ['rustc', '--target', 'x86_64-unknown-linux-gnux32']
pkg-config = 'x86_64-pc-linux-gnux32-pkg-config'
ar = '/usr/bin/ar'
strip = '/usr/bin/strip'
cups-config = 'cups-config'
llvm-config = 'llvm-config'
exe_wrapper = ''
[built-in options]
libdir = 'libx32'
[properties]
sizeof_void* = 4
sizeof_long = 4
[host_machine]
system = 'linux'
subsystem = 'linux'
kernel = 'linux'
cpu_family = 'x86'
cpu = 'x86_64'
endian = 'little'
EOF
done
Disse filene vil bli brukt som standard i pakker som bruker Meson baserte byggesystemer for å redusere eventuelle problemer med arkitektur og oppgradering.