Make

Make::usage = "Make[targets, sources, Hold[action]] makes a target, or a list of targets, given sources, or a list of sources, in the style of the unix 'make' command.";
Make[target_String, sources_, action_Hold] := Make[Evaluate@{target}, sources, action];
Make[targets_, source_String, action__Hold] := Make[targets, Evaluate@{source}, action];
Make[targets_List, sources_List, action_Hold] := Module[{},
If[
(And @@ ((FileType[#] =!= None)& /@ sources)) &&
Or[
Or @@ ((FileType[#]===None)& /@ targets),
Min[AbsoluteTime[FileDate[#]]& /@ targets] < Max[AbsoluteTime[FileDate[#]]& /@ sources]
],
Print["Making ",targets, " ..."];
ReleaseHold[action]
]
];

SimplifyingTheExact.pdf

Make["SimplifyingTheExact.pdf", "SimplifyingTheExact.nb", Hold[
nb=Join[
Get["SimplifyingTheExact.nb"],
Notebook[
PageFooters -> {{None,None,None},{None,None,None}},
PageHeaders -> {{None,None,None},{None,None,None}},
PrintingOptions -> {
"PrintingMargins"->{{0,0},{0,0}},
"EmbedStandardPostScriptFonts"->False
},
StyleDefinitions->Notebook[{
Cell[StyleData[StyleDefinitions->"Default.nb"]],
Cell[
StyleData[All,"Printout"],
ShowSyntaxStyles->True,
Magnification->1.2
]
}]
]];
Export["SimplifyingTheExact.pdf", nb];
]];