1 \documentclass[ignorenonframetext]{beamer}
2 \usepackage[Symbols,MiscellaneousSymbols]{ucharclasses}
5 \setmainfont{FreeSerif}
12 \usepackage{threeparttable}
13 \usepackage[backend=biber,natbib=true,hyperref=true,style=numeric-comp]{biblatex}
14 \bibliography{references}
15 \usepackage[nomargin,inline,draft]{fixme}
19 \usepackage{zref-xr,zref-user}
20 \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
22 \usepackage[x11names,svgnames,usenames,dvipsnames]{xcolor}
23 \usepackage[noxcolor]{beamerarticle}
26 \usepackage[bf]{caption}
31 \usepackage{adjustbox}
32 \usepackage{longtable}
34 \usepackage{pdflscape}
35 \usepackage[hyperfigures,bookmarks,colorlinks]{hyperref}
47 \usetheme{CambridgeUS}
48 \usecolortheme{beaver}
49 \setbeamercovered{transparent}
50 \logo{\begin{tikzpicture}% Pale figure
51 {\node[opacity=0.3] {%\includegraphics[width=2cm]{LOGO}%
56 \title{Using make for science}
58 \author{Don Armstrong}
60 \subject{make for science}
63 \frame[plain]{\titlepage}
65 \mode<article>{\maketitle}
67 \section{What make was made for}
68 \begin{frame}{What was make originally made to do?}
70 \item Compiling and installing software from source
71 \item Replacement of operating system specific compilation and
72 installation shell scripts
73 \item Re-compile when dependencies of the software were modified
77 \subsection{Brief history of makes}
79 \begin{frame}{Brief history of make-alikes}
82 \href{http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html}{POSIX
83 Make} (standardization of basic features of make)
84 \item \href{http://www.gnu.org/software/make/manual/}{GNU Make}
85 (standard make on Linux and OS X)
86 \item \href{https://www.freebsd.org/cgi/man.cgi?query=make(1)}{BSD
87 Make} (pmake or bmake)
89 \href{https://msdn.microsoft.com/en-us/library/dd9y37ha.aspx}{nmake}
90 (Part of visual studio)
91 \item \href{http://plan9.bell-labs.com/sys/doc/mk.html}{Mk} (Plan 9
96 \subsection{Other solutions in this problem space}
98 \begin{frame}{Other non-make dependency builders}
100 \item Ant (popular for java software)
101 \item Cabal (popular for Haskell)
102 \item Maven (also java)
103 \item Rake (ruby build took)
104 \item Gradle (Rake DSL)
105 \item Leiningen (Clojure)
106 \item Tweaker (task definitions in any language)
108 \href{https://en.wikipedia.org/wiki/List_of_build_automation_software}{Wikipedia
109 List of build automation software}
113 \section{Introduction to Makefiles}
117 \subsection{This Presentation}
119 \subsection{Can you dig it?}
121 \subsection{Calling records from SRA}
123 \section{Why not make?}
125 \subsection{Timestamps}
127 \subsection{Complicated Workflows}
129 \section{Further Resources}