X-Git-Url: https://iankelling.org/git/?p=buildscripts;a=blobdiff_plain;f=emacs;fp=emacs;h=488da0cc27e75d1adb23c002c32415c809d06c26;hp=6b5ec5c8eef9ea75c5767c890e147586ed2ec131;hb=2f919040c2b04aa585017a7dfb531e660d8f9e6e;hpb=0b3e4015fe1aed7310719d1ccb9a84c22512a9d1 diff --git a/emacs b/emacs index 6b5ec5c..488da0c 100755 --- a/emacs +++ b/emacs @@ -19,18 +19,21 @@ if [[ -s ~/.bashrc ]];then . ~/.bashrc;fi # arg = git commit to check out update=false -recompile=true -export FORCE_RECOMPILE=true +bootstrap=false +recompile=false show_pkgs=false while [[ $1 == -* ]]; do case $1 in - --no-r) recompile=false; unset FORCE_RECOMPILE; shift ;; - -u) update=true; shift ;; - -p) show_pkgs=true; shift ;; + -b) bootstrap=true; recompile=true ;; + -r) recompile=true ;; + --no-r) recompile=false ;; + -u) update=true ;; + -p) show_pkgs=true ;; --) break ;; *) echo "$0: error: bad arg: $1" >&2; exit 1 ;; esac + shift done @@ -67,31 +70,38 @@ fi #building emacs, INSTALL.BZR -# gawk and attr were no longer automatically installed in stretch, -# looking back, i assume i got some error. -# autoconf-archive due to come error -pi ${pkgs[@]} #git repo dir=/a/opt/emacs-$(distro-name)$(distro-num) +last_build=$dir/iank-emacs-build # e/e because autofs failing to mount will make it so # you cant ls whatever directory it is in, so we # need an extra directory dirs=($dir $dir-nox/.iank/e/e) -if [[ ! -e $dir ]]; then +m cd $dir + +rev=$(cat $last_build 2>/dev/null) ||: +head=$(git rev-parse HEAD) + +if ! $recompile && [[ $rev == "$head" ]]; then + echo "already compiled, exiting" + exit 0 +fi + +if [[ ! -e $dir || $rev != "$head" ]]; then m cp -ar /a/opt/emacs $dir + bootstrap=true recompile=true fi +# gawk and attr were no longer automatically installed in stretch, +# looking back, i assume i got some error. +# autoconf-archive due to come error +pi ${pkgs[@]} -m cd $dir - -rev=$(cat ~/.local/emacs-build-git-revision 2>/dev/null) ||: -head=$(git rev-parse HEAD) - -if $recompile || [[ $rev != "$head" ]]; then +if $recompile; then case $(distro-name) in fedora ) logq s yum-builddep -y emacs @@ -130,7 +140,7 @@ for d in ${dirs[@]}; do m sudo chown $USER:$USER $mp m cd $mp fi - if $recompile; then + if $recompile || [[ ! -e configure ]]; then # todo, consider when this should be uncommented #logq s make uninstall m find ~/.emacs.d/ -name '*.elc' -delete @@ -176,7 +186,7 @@ for d in ${dirs[@]}; do # make emacs always work for root sudo /a/exe/lnf /usr/local/bin/emacs /usr/bin - echo $head >~/.local/emacs-build-git-revision + echo $head >$last_build fi nox=true done @@ -189,7 +199,9 @@ done cd /a/opt/mu -rev=$(cat ~/.local/mu-build-git-revision 2>/dev/null) ||: +last_build=$PWD/iank-mu-build + +rev=$(cat $last_build 2>/dev/null) ||: head=$(git rev-parse HEAD) if $recompile || [[ $rev != "$head" ]]; then