We discussed how defining macros in code is tedious and why it is better to define macros for conditional compilation through the command line. In this problem you will write a script called compile which can take three optional arguments; the string MERGE_ENABLED, SIGN_ENABLED and EDIT_ENABLED (in any order). We would like to be able to run compile with 0 or more of these arguments and the script would compile the Document Viewer program, that you updated in the previous problem, with the corresponding macros defined. For example, executing the script as follows: should compile the program with the macros EDIT_ENABLED and MERGE_ENABLED defined. The compile script should always name the resulting executable viewer like in the previous problem. After the above command has executed, the viewer executable would support the EDIT and MERGE feature but SIGN would be disabled. Submit the compile script as a zip file to the appropriate marmoset project..