]> git.donarmstrong.com Git - using_make_for_science.git/blob - using_make_for_science.Rnw
fixup minted for tabs
[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   \oddsidemargin 0.0in 
37   \textwidth 6.5in
38   \raggedbottom
39   \clubpenalty = 10000
40   \widowpenalty = 10000
41   \pagestyle{fancy}
42 }
43
44 \usepackage{minted}
45
46 \mode<presentation>{ 
47   \usetheme{CambridgeUS}
48   % http://identitystandards.illinois.edu/graphicstandardsmanual/generalguidelines/colors.html
49   \definecolor{ilboldblue}{HTML}{002058}
50   \definecolor{ilboldorange}{HTML}{E87722}
51   \definecolor{ilblue}{HTML}{606EB2}
52   \definecolor{ilorange}{HTML}{D45D00}
53   \setbeamercolor{alerted text}{fg=ilboldblue}
54   \setbeamercolor*{palette primary}{fg=ilblue,bg=ilorange}
55   \setbeamercolor*{palette secondary}{fg=ilblue!20!white,bg=ilorange}
56   \setbeamercolor*{palette tertiary}{bg=ilblue,fg=ilorange}
57   \setbeamercolor*{palette quaternary}{fg=ilblue,bg=ilorange}
58   
59   \setbeamercolor*{sidebar}{fg=ilorange,bg=ilboldblue}
60   
61   \setbeamercolor*{palette sidebar primary}{fg=ilblue!10!white,bg=ilorange}
62   \setbeamercolor*{palette sidebar secondary}{fg=ilorange}
63   \setbeamercolor*{palette sidebar tertiary}{fg=ilblue}
64   \setbeamercolor*{palette sidebar quaternary}{fg=ilorange}
65   
66   % \setbeamercolor*{titlelike}{parent=palette primary}
67   \setbeamercolor{titlelike}{parent=palette primary,fg=ilboldblue,bg=ilorange}
68   \setbeamercolor{frametitle}{fg=ilboldorange,bg=ilblue!80!white}
69   \setbeamercolor{frametitle right}{fg=ilboldblue,bg=ilorange}
70   
71   \setbeamercolor*{separation line}{}
72   \setbeamercolor*{fine separation line}{}
73   \setbeamercovered{transparent}  
74   \logo{\begin{tikzpicture}% Pale figure
75       {\node[opacity=0.7]{\IfFileExists{./logo.pdf}{\includegraphics[height=1.5cm]{logo.pdf}}{}%
76         };}%
77     \end{tikzpicture}}
78 }
79
80 \title{Using make for science}
81
82 \author{Don Armstrong}
83 \date{\today}
84 \subject{make for science}
85 \begin{document}
86
87 \frame[plain]{\titlepage}
88
89 \mode<article>{\maketitle}
90
91 \section{What make was made for}
92 \begin{frame}{What was make originally made to do?}
93   \begin{itemize}
94   \item Compiling and installing software from source
95   \item Replacement of operating system specific compilation and
96     installation shell scripts
97   \item Re-compile when dependencies of the software were modified
98   \end{itemize}
99 \end{frame}
100
101 \subsection{Brief history of makes}
102
103 \begin{frame}{Brief history of make-alikes}
104   \begin{itemize}
105   \item
106     \href{http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html}{POSIX
107       Make} (standardization of basic features of make)
108   \item \href{http://www.gnu.org/software/make/manual/}{GNU Make}
109     (standard make on Linux and OS X)
110   \item \href{https://www.freebsd.org/cgi/man.cgi?query=make(1)}{BSD
111       Make} (pmake or bmake)
112   \item
113     \href{https://msdn.microsoft.com/en-us/library/dd9y37ha.aspx}{nmake}
114     (Part of visual studio)
115   \item \href{http://plan9.bell-labs.com/sys/doc/mk.html}{Mk} (Plan 9
116     replacement of make)
117   \end{itemize}
118 \end{frame}
119
120 \subsection{Other solutions in this problem space}
121
122 \begin{frame}{Other non-make dependency builders}
123   \begin{itemize}
124   \item Ant (popular for java software)
125   \item Cabal (popular for Haskell)
126   \item Maven (also java)
127   \item Rake (ruby build took)
128   \item Gradle (Rake DSL)
129   \item Leiningen (Clojure)
130   \item Tweaker (task definitions in any language)
131   \item
132     \href{https://en.wikipedia.org/wiki/List_of_build_automation_software}{Wikipedia
133       List of build automation software}
134   \end{itemize}
135 \end{frame}
136
137 \section{Introduction to Makefiles}
138
139 \begin{frame}[fragile]{Simple Makefile}
140 \begin{minted}[showtabs]{make}
141 hello_world:
142         echo "hello world" > hello_world
143 \end{minted}
144 \end{frame}
145
146 \subsection{General Syntax}
147
148
149 \begin{frame}[fragile]{Simple Makefile}
150 \begin{minted}[showtabs]{make}
151 hello_world:
152         echo "hello world" > hello_world
153 \end{minted}
154 \end{frame}
155
156 \subsection{Variables}
157
158 \subsection{Rules}
159
160 \subsubsection{Default Target}
161
162 \subsubsection{Special Targets}
163
164 \subsubsection{Pattern Rules}
165
166 \subsection{Functions}
167
168
169 \section{Examples}
170
171 \subsection{This Presentation}
172
173 \subsection{Can you dig it?}
174
175 \subsection{Calling records from SRA}
176
177 \section{Why not make?}
178
179 \subsection{Timestamps}
180
181 \subsection{Complicated Workflows}
182
183 \section{Further Resources}
184
185
186 \end{document}