minor fixes
[buildscripts] / emacs
diff --git a/emacs b/emacs
index 5082b20e56dd75f4b71eb5543d93b2ba14dc3b5c..b9b012ea363fd3abb7c1da7c1bdc95b800e88b84 100755 (executable)
--- a/emacs
+++ b/emacs
 set -eE -o pipefail
 trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR
 
-set -x
+#set -x
 # arg = git commit to check out
-# -r = don't recompile from scratch
-# -u = update sources
 
-# stop if any the command fails
 update=false
 recompile=true
 
 while [[ $1 == -* ]]; do
     case $1 in
-        -r) recompile=false; shift ;;
+        --no-r) recompile=false; shift ;;
         -u) update=true; shift ;;
         --) break ;;
     esac
 done
 
+e() { echo "$*"; "$@"; }
+
+# Og = optmize, but keep gdb working
 export CFLAGS="-Og -g3"
 
-logq pi texlive hunspell git
+# gawk and attr were no longer automatically installed in stretch
+pi eatmydata
+logq sudo eatmydata apt-get -y install --purge --auto-remove texlive hunspell git gawk attr
 case $(distro-name) in
     fedora )
         # before i learned the builddep command, i identified these
@@ -45,7 +47,12 @@ case $(distro-name) in
         logq s yum-builddep -y emacs
         logq pi texlive-dvipng
         ;;&
-    debian|ubuntu)
+    debian|ubuntu|trisquel)
+               # todo: unknown for other distros, this will fail
+        logq p -y build-dep maildir-utils
+# due to autogen error message
+p install autoconf-archive
+
         # oddly, on ubuntu 14.04 this installs postfix, but I dun care
         # ubuntu 14.04 gave this error message
         # Unable to satisfy the build-depends: Build-Depends: libpng-dev
@@ -71,13 +78,14 @@ esac
 #building emacs, INSTALL.BZR
 
 #git repo
-dir=/a/opt/emacs-`distro-name``debian-archive`
+dir=/a/opt/emacs-`distro-name`
+dir+=`debian-archive` ||: # we may not be on debian
 
 if [[ ! -e $dir ]]; then
-    cp -r /a/opt/emacs $dir
+    e cp -ar /a/opt/emacs $dir
     recompile=true
 fi
-cd $dir
+cd $dir
 
 if $recompile; then
     # todo, consider when this should be uncommented
@@ -86,16 +94,16 @@ if $recompile; then
 
     # git version
     if [[ $1 ]]; then
-        i clean -xxxfd
+        i clean -xxxfd
     elif $update; then
-        i fetch
-        i clean -xxxffd
-        i reset --hard origin/master
-        i clean -xxxffd
+        i fetch
+        i clean -xxxffd
+        i reset --hard origin/master
+        i clean -xxxffd
     fi
 
     # autogen is usually only for the first build, assume it works
-    logq ./autogen.sh
+    logq ./autogen.sh all
     # I tried changing O2 to O3, don't know if it made it faster or slower so I went back to 02.
     # Also, link-time-optimization based on ./INSTALL
 
@@ -110,18 +118,26 @@ if $recompile; then
 fi
 
 # temporarily for testing multiple versions
-
+logq make -j `nproc`
 logq sudo make install
 
 # make emacs always work for root
 s lnf /usr/local/bin/emacs /usr/bin
 
 
+#git clone https://github.com/djcb/mu
+# from its HACKING file
+cd /a/opt/mu
+./autogen.sh
+make
+s make install
+# note uninstall is implemented
 
 logq emacs --batch -l ~/.emacs.d/init.el -l ~/.emacs.d/compile-init-dir.el
 
-# not keeping up with the latest org-mode development
-#~/bin/buildscripts/org-mode
+# as of 01-2017, built-in org mode has a bug that
+# org-edit-src-exit does not get bound, so using latest
+/a/bin/buildscripts/org-mode
 
 if $update; then
     logq pi bzr