#!/bin/sh -e [ "$WAYLAND_DISPLAY" ] || { printf 'error: foot-pgo requires a running wayland session\n' >&2 exit 1 } # Avoid scdoc dependency. sed "/subdir('doc')/d" meson.build > _ mv -f _ meson.build # PGO with < -O3 is slow > GCC 10.1.X. export CFLAGS="$CFLAGS -O3" # Clang requires this for PGO. case $("${CC:-cc}" --version) in *clang*) export CFLAGS="$CFLAGS -Wno-ignored-optimization-argument" esac mkdir -p bld/release cd bld/release meson \ --prefix=/usr \ --buildtype=release \ --force-fallback-for=fcft,tllist \ -Db_lto=true \ ../.. # Generate PGO data. { meson configure \ -Db_pgo=generate \ ninja ninja test # Required (gives some profiling data). ./footclient --version set -- \ "$OLDPWD/scripts/generate-alt-random-writes.py" \ --scroll \ --scroll-region \ --colors-regular \ --colors-bright \ --colors-256 \ --colors-rgb \ --attr-bold \ --attr-italic \ --attr-underline \ --sixel \ .pgotmp ./foot \ --config=/dev/null \ --term=xterm \ sh -c "$* && cat .pgotmp" } # Clang requires this for PGO. case $("$CC" --version) in *clang*) llvm-profdata merge default_*profraw --output=default.profdata esac meson configure -Db_pgo=use ninja ninja install rm -rf \ "$DESTDIR/usr/share/doc" \ "$DESTDIR/usr/share/zsh" \ "$DESTDIR/usr/share/fish" \ "$DESTDIR/usr/share/bash-completion"