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}
45 \usetheme{CambridgeUS}
46 % http://identitystandards.illinois.edu/graphicstandardsmanual/generalguidelines/colors.html
47 \definecolor{ilboldblue}{HTML}{002058}
48 \definecolor{ilboldorange}{HTML}{E87722}
49 \definecolor{ilblue}{HTML}{606EB2}
50 \definecolor{ilorange}{HTML}{D45D00}
51 \setbeamercolor{alerted text}{fg=ilboldblue}
52 \setbeamercolor*{palette primary}{fg=ilblue,bg=ilorange}
53 \setbeamercolor*{palette secondary}{fg=ilblue!20!white,bg=ilorange}
54 \setbeamercolor*{palette tertiary}{bg=ilblue,fg=ilorange}
55 \setbeamercolor*{palette quaternary}{fg=ilblue,bg=ilorange}
57 \setbeamercolor*{sidebar}{fg=ilorange,bg=ilboldblue}
59 \setbeamercolor*{palette sidebar primary}{fg=ilblue!10!white,bg=ilorange}
60 \setbeamercolor*{palette sidebar secondary}{fg=ilorange}
61 \setbeamercolor*{palette sidebar tertiary}{fg=ilblue}
62 \setbeamercolor*{palette sidebar quaternary}{fg=ilorange}
64 % \setbeamercolor*{titlelike}{parent=palette primary}
65 \setbeamercolor{titlelike}{parent=palette primary,fg=ilboldblue,bg=ilorange}
66 \setbeamercolor{frametitle}{fg=ilboldorange,bg=ilblue!80!white}
67 \setbeamercolor{frametitle right}{fg=ilboldblue,bg=ilorange}
69 \setbeamercolor*{separation line}{}
70 \setbeamercolor*{fine separation line}{}
71 \setbeamercovered{transparent}
72 \logo{\begin{tikzpicture}% Pale figure
73 {\node[opacity=0.7]{\IfFileExists{./logo.pdf}{\includegraphics[height=1.5cm]{logo.pdf}}{}%
78 \title{Using make for science}
80 \author{Don Armstrong}
82 \subject{make for science}
85 \frame[plain]{\titlepage}
87 \mode<article>{\maketitle}
89 \section{What make was made for}
90 \begin{frame}{What was make originally made to do?}
92 \item Compiling and installing software from source
93 \item Replacement of operating system specific compilation and
94 installation shell scripts
95 \item Re-compile when dependencies of the software were modified
99 \subsection{Brief history of makes}
101 \begin{frame}{Brief history of make-alikes}
104 \href{http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html}{POSIX
105 Make} (standardization of basic features of make)
106 \item \href{http://www.gnu.org/software/make/manual/}{GNU Make}
107 (standard make on Linux and OS X)
108 \item \href{https://www.freebsd.org/cgi/man.cgi?query=make(1)}{BSD
109 Make} (pmake or bmake)
111 \href{https://msdn.microsoft.com/en-us/library/dd9y37ha.aspx}{nmake}
112 (Part of visual studio)
113 \item \href{http://plan9.bell-labs.com/sys/doc/mk.html}{Mk} (Plan 9
118 \subsection{Other solutions in this problem space}
120 \begin{frame}{Other non-make dependency builders}
122 \item Ant (popular for java software)
123 \item Cabal (popular for Haskell)
124 \item Maven (also java)
125 \item Rake (ruby build took)
126 \item Gradle (Rake DSL)
127 \item Leiningen (Clojure)
128 \item Tweaker (task definitions in any language)
130 \href{https://en.wikipedia.org/wiki/List_of_build_automation_software}{Wikipedia
131 List of build automation software}
135 \section{Introduction to Makefiles}
139 \subsection{This Presentation}
141 \subsection{Can you dig it?}
143 \subsection{Calling records from SRA}
145 \section{Why not make?}
147 \subsection{Timestamps}
149 \subsection{Complicated Workflows}
151 \section{Further Resources}