SetDirectory["C:\\drorbn\\AcademicPensieve\\2015-04\\Commutators"]

Make::usage = "Make[targets, sources, 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]
]
];

?Make

name= "Commutators-Handout";
target =name<>"_400.png";
source = name<>".pdf";
Make[target, source, Hold[
Read["!convert -trim -geometry 400x400 -background white -alpha remove -gamma 0.5 "<>source<>"[0] "<>target];
]]

name= "Commutators-Handout";
target =name<>"_800.png";
source = name<>".pdf";
Make[target, source, Hold[
Read["!convert -trim -geometry 800x800 -background white -alpha remove "<>source<>"[0] "<>target];
]]

target ="Proof.png";
source = "Commutators-Handout.pdf";
dpi=150;
pos=dpi(11-Get["Commutators-Handout.pos"]) // Round;
yoff=pos[[1]]// ToString;
ylen=pos[[2]]-pos[[1]] // ToString;
Make[target, source, Hold[
Read["!convert -density 150 -background white -alpha remove -crop x"<>ylen<>"+0+"<>yoff<>" -trim "<>source<>"[0] "<>target];
]]

Make["Proof.png","Commutators-Handout.pdf",Hold[Read["!convert -density 150 -background white -alpha remove -crop x"<>ylen<>"+0+"<>yoff<>" -trim "<>source<>"[0] "<>target];]]

{
"TitleNotes" -> "This is the construction folder for my talk \"Commutators\", <a href=http://www.math.toronto.edu/~drorbn/Talks/CMU-1504/>http://www.math.toronto.edu/~drorbn/Talks/CMU-1504/</a>.<p>",
"CleanTeX" -> True
}