\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[a4paper, margin=0.75in]{geometry}

% set up hyperlink coloring
\usepackage{hyperref}
\hypersetup{
    colorlinks=true,
    linkcolor=blue,
    filecolor=magenta,
    urlcolor=cyan
}

\setlength{\parindent}{0pt} % no indentation

% checkbox list: https://tex.stackexchange.com/questions/247681/how-to-create-checkbox-todo-list
\usepackage{enumitem,amssymb}
\newlist{boxlist}{itemize}{2}
\setlist[boxlist]{label=$\square$}

% code support: listings and fancy verbatim
\usepackage{listings}
\lstset{basicstyle=\ttfamily\footnotesize}
\usepackage{fancyvrb}

\renewcommand{\familydefault}{\sfdefault} % default to sans serif

%%%%%%%%%%%%%%%%
\begin{document}

\title{Advanced Exercises Set 7\\Build Systems}
\author{EECS 201 Winter 2020 COVID-19 Edition}
\date{}
\maketitle

\section*{Submission Instructions}
To receive credit for this assignment you will need to email
the staff at \href{mailto:eecs201-staff@eecs.umich.edu}{eecs201-staff@eecs.umich.edu}
with \texttt{tar} archive(s) of your submissions attached as well as any additional
information requested in the body of your email.
You may choose the exercises that you wish to do from this set.
Each exercise is denoted by its point count.
\textbf{Extra credit is given for early turn-ins of advanced exercises.
        These details can be found on the website under the advanced homework grading policy.
        For these email-based submissions, your latest submission of the \texttt{tar}
        archive/questions will determine your extra credit.}

\section{Your very own Makefile (7)}
Write a general Makefile for a C/C++ project that utilizes variables
for setting the compiler and flags,
finds source code and header files, generates individual object code
from individual source code files before linking them into a final output executable,
and utilizes prerequisites to automate this process.
\\\\
If you do not have a C/C++ project, you can use the example project in the\\
\texttt{https://www.eecs.umich.edu/courses/eecs201/files/assignments/adv7-files.tar.gz}
zipped archive.
\begin{itemize}
  \item[$\square$] Your Makefile should be fairly generalizable: changing a handful of variables
                   should be the only thing you need to do to use it for another project.
  \item[$\square$] This Makefile should not require much editing (if any) if another C/C++ file is added.
                   Some people/teams prefer manual lists of files; however even with a discrete list of files
                   you shouldn't need to manually add a target to build that file's object code.
  \item[$\square$] Show off your Makefile. Be prepared to be able to explain \textbf{every part} of it.
\end{itemize}


\section{Using another build system (8)}
Try using another build system such as CMake for C/C++ projects or Ant/Maven for Java projects.
Once again, if you do not have a C/C++ project you can use the example project mentioned above.
You should put together and setup the necessary files yourself and be able to build the project
from the command line.
\subsection*{Submission checkoff:}
\begin{itemize}
  \item[$\square$] Mention what build system that you are using and for what language
                   and provide a list of instructions to build and run your project.
                   Be prepared to be able to explain \textbf{every part} of it.
\end{itemize}

\end{document}
