diff --git a/wayland/foot-pgo/build b/wayland/foot-pgo/build new file mode 100755 index 00000000..8a810ac7 --- /dev/null +++ b/wayland/foot-pgo/build @@ -0,0 +1,77 @@ +#!/bin/sh -e + +[ "$WAYLAND_DISPLAY" ] || { + printf 'error: foot-pgo requires a running wayland session\n' >&2 + exit 1 +} + +export DESTDIR="$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:-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" diff --git a/wayland/foot-pgo/checksums b/wayland/foot-pgo/checksums new file mode 120000 index 00000000..0ee46252 --- /dev/null +++ b/wayland/foot-pgo/checksums @@ -0,0 +1 @@ +../foot/checksums \ No newline at end of file diff --git a/wayland/foot-pgo/depends b/wayland/foot-pgo/depends new file mode 120000 index 00000000..3b76035b --- /dev/null +++ b/wayland/foot-pgo/depends @@ -0,0 +1 @@ +../foot/depends \ No newline at end of file diff --git a/wayland/foot-pgo/sources b/wayland/foot-pgo/sources new file mode 120000 index 00000000..f1633ffc --- /dev/null +++ b/wayland/foot-pgo/sources @@ -0,0 +1 @@ +../foot/sources \ No newline at end of file diff --git a/wayland/foot-pgo/version b/wayland/foot-pgo/version new file mode 120000 index 00000000..3f8318f8 --- /dev/null +++ b/wayland/foot-pgo/version @@ -0,0 +1 @@ +../foot/version \ No newline at end of file