]> git.donarmstrong.com Git - using_make_for_science.git/blob - using_make_for_science.Rnw
d17222fec670c9b66c0be8d215a7c21996bb2a51
[using_make_for_science.git] / using_make_for_science.Rnw
1 \documentclass[ignorenonframetext]{beamer}
2 \usepackage[Symbols,MiscellaneousSymbols]{ucharclasses}
3 \usepackage{fontspec}
4 % \usepackage{bidi}
5 \setmainfont{FreeSerif}
6 \setsansfont{FreeSans}
7 \setmonofont{FreeMono}
8
9 \usepackage{array}
10 \usepackage{fancyref}
11 \usepackage{booktabs}
12 \usepackage{threeparttable}
13 \usepackage[backend=biber,natbib=true,hyperref=true,style=numeric-comp]{biblatex}
14 \bibliography{references}
15 \usepackage[nomargin,inline,draft]{fixme}
16 \usepackage{texshade}
17 \usepackage{tikz}
18 \usepackage{nameref}
19 \usepackage{zref-xr,zref-user}
20 \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
21 \mode<article>{
22   \usepackage[x11names,svgnames,usenames,dvipsnames]{xcolor}
23   \usepackage[noxcolor]{beamerarticle}
24   \usepackage{fancyhdr}
25   \usepackage{graphicx}
26   \usepackage[bf]{caption}
27   \usepackage{rotating}
28   \usepackage{setspace}
29   \usepackage{acronym}
30   \usepackage{dcolumn}
31   \usepackage{adjustbox}
32   \usepackage{longtable}
33   \usepackage{geometry}
34   \usepackage{pdflscape}
35   \usepackage[hyperfigures,bookmarks,colorlinks]{hyperref}
36 }
37 \mode<article>{
38   \oddsidemargin 0.0in 
39   \textwidth 6.5in
40   \raggedbottom
41   \clubpenalty = 10000
42   \widowpenalty = 10000
43   \pagestyle{fancy}
44 }
45
46 \mode<presentation>{ 
47   \usetheme{CambridgeUS}
48   \usecolortheme{beaver}
49   \setbeamercovered{transparent}  
50   \logo{\begin{tikzpicture}% Pale figure
51       {\node[opacity=0.3] {%\includegraphics[width=2cm]{LOGO}%
52         };}%
53     \end{tikzpicture}}
54 }
55
56 \title{Using make for science}
57
58 \author{Don Armstrong}
59 \date{\today}
60 \subject{make for science}
61 \begin{document}
62
63 \frame[plain]{\titlepage}
64
65 \mode<article>{\maketitle}
66
67 \section{What make was made for}
68 \begin{frame}{What was make originally made to do?}
69   \begin{itemize}
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
74   \end{itemize}
75 \end{frame}
76
77 \subsection{Brief history of makes}
78
79 \begin{frame}{Brief history of make-alikes}
80   \begin{itemize}
81   \item
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)
88   \item
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
92     replacement of make)
93   \end{itemize}
94 \end{frame}
95
96 \subsection{Other solutions in this problem space}
97
98 \begin{frame}{Other non-make dependency builders}
99   \begin{itemize}
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)
107   \item
108     \href{https://en.wikipedia.org/wiki/List_of_build_automation_software}{Wikipedia
109       List of build automation software}
110   \end{itemize}
111 \end{frame}
112
113 \section{Introduction to Makefiles}
114
115 \section{Examples}
116
117 \subsection{This Presentation}
118
119 \subsection{Can you dig it?}
120
121 \subsection{Calling records from SRA}
122
123 \section{Why not make?}
124
125 \subsection{Timestamps}
126
127 \subsection{Complicated Workflows}
128
129 \section{Further Resources}
130
131
132 \end{document}