CSE 109 ADDENDUM to Programming Assignment #2 You should use separate compilation for this program. You should have separate .h and .cc files for the declaration and code for each class. You should provide a Makefile such that the command make recompiles all those files that are in need of recompiling because of changes in files upon which they depend and then relinks the .o files generated to produce a new version of the executable file p2. Further, the command make clean should remove all files ending in ~, all files ending in .o, and the file f2. I will test your program by executing the command "make clean", followed by the command "make", and then I will execute the command "p2" to test out your program Start by copying /proj/csc109/p2/tree.cc to the file p2.cc in your directory. Then make copies of p2.cc to edit so that you can create tree.h, tree.cc, etc. If you do not trust your class word, then omit the command in your Makefile that creates word.o and instead copy the files /proj/csc109/p2/word.h and /proj/csc109/p2/word.o into your directory. Then you can include word.h and link word.o into p2. Further, the command clean: in your Makefile should read as follows: clean: rm -f *~ *.o p2 cp /proj/csc109/p2/word.o word.o Note, I am likely to create other programs that include your files tree.cc, tree.h, etc., so that I may further test your class. To that end, I have added the follwing instructions for p2. For p2 I ask you to create separate .h and .cc files for each class. I did not mention your file p2.cc shhould have no class declarations or class definitions. Your file p2.cc should consist only of main() and functions it calls. To make my job easier, p2.cc should only include the file tree.h (and, optionally, ). I will test your class Tree by discarding your p2, bringing in my p2, compiling my p2, and linking it with your .o file(s). This gives me the ability to use other versions of p2 that have additional tests of your class. One verstion I will use is stored in /proj/csc109/p2/p2.cc.