commit 575530e831c047dfc7f5e1c169c07ceb8fbfe666 parent 542be243e489aad247effeb7c7a323cf456bd67f Author: KΓ©vin Le Gouguec <kevin.legouguec@gmail.com> Date: Sun, 2 Jul 2023 11:07:19 +0200 Add support for out-of-tree builds Diffstat:
| M | .local/bin/emacs-build | | | 22 | +++++++++++++++------- |
1 file changed, 15 insertions(+), 7 deletions(-)
diff --git a/.local/bin/emacs-build b/.local/bin/emacs-build @@ -2,6 +2,10 @@ set -eux +src=${EMACS_SRC:-~/src/emacs/master} +build=${EMACS_BUILD:-.} +config_h=${build}/src/config.h + make="make -j$(nproc --all)" configure_flags=( --with-cairo @@ -27,31 +31,35 @@ then cachedir=${XDG_CACHE_HOME:-~/.cache}/emacs test -d "${cachedir}" || mkdir -p "${cachedir}" - thistree=${PWD#~} - cachefile=${cachedir}/config${thistree//\//,} + builddesc=${PWD} + builddesc=${builddesc#~} + builddesc=${builddesc//\//,} + cachefile=${cachedir}/config${builddesc} configure_flags=(--cache-file="${cachefile}" "${configure_flags[@]}") fi -if ! test -f Makefile +if ! test -f "${src}"/Makefile then - ${make} configure + ${make} -C "${src}" configure fi check-config () { - if ! test -f src/config.h + if ! test -f "${config_h}" then return 1 fi local pattern="#define EMACS_CONFIG_OPTIONS \"${configure_flags[@]}\"" - grep "${pattern}" src/config.h + grep "${pattern}" "${config_h}" } +cd "${build}" + if ! check-config then - ./configure "${configure_flags[@]}" + "${src}"/configure "${configure_flags[@]}" fi ${make} "$@"