comments
[buildscripts] / emacs
diff --git a/emacs b/emacs
index 62cfc31c9f392f2b4d4a7f5ce40008d1cc0f1c58..e99db9951b1ce86a4d36e1247d059b1051aa7ea6 100755 (executable)
--- a/emacs
+++ b/emacs
@@ -18,55 +18,62 @@ trap 'echo "$0:$LINENO:error: \"$BASH_COMMAND\" returned $?"' ERR
 
 #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
+show_pkgs=false
 
 while [[ $1 == -* ]]; do
     case $1 in
         --no-r) recompile=false; shift ;;
         -u) update=true; shift ;;
+        -p) show_pkgs=true; shift ;;
         --) break ;;
     esac
 done
 
 e() { echo "$*"; "$@"; }
 
+# Og = optmize, but keep gdb working
 export CFLAGS="-Og -g3"
 
-# gawk and attr were no longer automatically installed in stretch
-logq pi texlive hunspell git gawk attr
+pkgs=(gawk attr autoconf-archive)
+if $show_pkgs; then
+    echo ${pkgs[*]}
+    for x in emacs25 maildir-utils; do
+      # todo, this gives fake provided packages like mailx, and then
+      # fai ignores them.
+      # https://askubuntu.com/questions/21379/how-do-i-find-the-build-dependencies-of-a-package
+      apt-rdepends --build-depends --follow=DEPENDS $x|sed -rn 's/^\s*Build-Depends: (\S+).*/\1/p'
+    done
+    exit 0
+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[@]}
+
+
 case $(distro-name) in
     fedora )
-        # before i learned the builddep command, i identified these
-        # dependencies. Not sure if the builddep took care of them all
-        # gtk3-devel libXpm-devel libjpeg-turbo-devel libtiff-devel giflib-devel ncurses-devel gnutls-devel libxml2-devel libotf-devel GConf2-devel gpm-devel librsvg2-devel ImageMagick-devel m17n-lib-devel libselinux-devel
-
         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
         # 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
         # this is satisfied by dvipng. the build-dep is just wrong
-        # minor bug I'm not going to bother reporting
-        logq p -y build-dep emacs
-        # fyi libmagick is broken right now because it uses a fork which is waiting for emacs to support it
-        # not sure how many of these are satisfied by the prev command,
-        # but from the log, it looks like none of them
-        logq pi libacl1-dev libselinux-dev libm17n-dev libgtk-3-dev \
-             librsvg2-dev libgpm-dev libgconf2-dev libotf-dev libxml2-dev \
-             automake1.11 libgnutls28-dev libncurses-dev libxpm-dev libjpeg-dev \
-             libgif-dev libtiff-dev texinfo dvipng
+        # minor bug I'm not going to bother reporting.
+        #
+        # note, useful command to see build dep packagages:
+        # apt-rdepends --build-depends --follow=DEPENDS emacs25
+        logq p -y build-dep emacs25
         ;;&
-    debian)
-        # included in dependencies on other distros, todo, check on ubuntu
-        logq pi suckless-tools
-        ;;
 esac
 
 
@@ -74,10 +81,11 @@ 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
-    e cp -r /a/opt/emacs $dir
+    e cp -ar /a/opt/emacs $dir
     recompile=true
 fi
 e cd $dir
@@ -98,7 +106,7 @@ if $recompile; then
     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
 
@@ -113,19 +121,29 @@ 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
+if $recompile; then
+    # note, not totally sure its right to put this within recompile, but its taking up most of the time, so going for it.
+    logq emacs --batch -l ~/.emacs.d/init.el -l ~/.emacs.d/compile-init-dir.el
+fi
 
 # as of 01-2017, built-in org mode has a bug that
 # org-edit-src-exit does not get bound, so using latest
-~/bin/buildscripts/org-mode
+/a/bin/buildscripts/org-mode
 
 if $update; then
     logq pi bzr