| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html> |
| |
| <head> |
| <link rel="stylesheet" type="text/css" href="help.css"> |
| <title>Makefile Support</title> |
| </head> |
| |
| <body> |
| <a name="top"></a> |
| <table cellspacing="5"> |
| <tr> |
| <td> |
| <img src="images/trident_transparent.png"> |
| </td> |
| <td> |
| <h1>Makefile Support</h1> |
| </td> |
| </tr> |
| </table> |
| |
| <hr> |
| |
| <p> |
| The GEM Plug-in supports CDT C/C++ Makefile projects with a minimum effort required on the part of the programmer. |
| Just some minor modifications to your project's Makefiles and you'll be able to use GEM with your Makefile |
| Projects as well as your Managed Build Projects. |
| |
| |
| <h2>Makefile Modification Steps</h2> |
| <p> |
| The following are the necessary procedures to modify your CDT Makefile Project so that it can be verified and |
| analyzed by the GEM Plug-in. If you are creating a project from scratch, make sure to start with a new <b>Makefile Project</b> |
| and not a <b>Managed-Build Project</b>! |
| </p> |
| <ul> |
| <li> |
| <b>Change the compiler to ispcc forC or ispCC for C++. This is a wrapper for mpicc that allow ISP's Profiler to intercept MPI calls at runtime</b> |
| <pre> |
| # Which compiler to use |
| # CC = mpicc <-- comment this out |
| |
| # For MPI C applications |
| CC = ispcc |
| |
| # For MPI C++ applications |
| CC = ispCC |
| </pre> |
| </li> |
| <li> |
| <b> |
| The GEM Plug-in requires the fully qualified path to all source code in order to do the code analyzing. ISP itself uses |
| the __FILE__ and __LINE__ macros in generating a runtime log. Your Makefiles will have to pass the source files to |
| ispcc/ispCC (gcc) at compile time in order to get that back in the same form. This is accomplished by the following being |
| added to your Makefiles |
| </b> |
| <pre> |
| SOURCEPATH = $(shell pwd) # defining this will make the present working directory available for use |
| $(CC) $(CFLAGS) -c $(SOURCEPATH)/$*.c # add this to your build rules |
| </pre> |
| </li> |
| <li> |
| <b>Change the extension of the generated executables to <i>".gem"</i></b> |
| <pre> |
| $(BINDIR)/mtest.gem$(VERNUM): $(MESHTESTOBJS) $(ISPOBJS) |
| </pre> |
| </li> |
| </ul> |
| |
| |
| <h2>Setting Your Projects up to Build</h2> |
| <ul> |
| <li> |
| Create make targets for your Makefile Project |
| <p> </p> |
| <img src="images/makeTargets.png"> |
| <p> </p> |
| </li> |
| <li> |
| Now simply double click the make target you need.<br> |
| <i>You may have to do a little debugging to get everything just right</i> |
| <p> </p> |
| </li> |
| </ul> |
| |
| <h2>Running GEM on the Generated Executables</h2> |
| <ul> |
| <li> |
| Locate the executable(s) with ".gem" extension in the Project Explorer |
| <p> </p> |
| <img src="images/gemExtension.png"> |
| <p> </p> |
| </li> |
| <li> |
| Set the number of processes for the next run of GEM.<br> |
| Find these instructions in the section in the corresponding section |
| of the <a href="analyzerView.html">Analyzer View Help page</a> |
| <p> </p> |
| </li> |
| <li> |
| Right click on an executable with ".gem" extension in the Project Explorer |
| <p> </p> |
| <img src="images/executablePopUp.png"> |
| <p> </p> |
| </li> |
| <li> |
| This should bring up the Analyzer View if it isn't already, as it does with any CDT Managed Build Project.<br> |
| Please see the <a href="analyzerView.html">Analyzer View Help page</a> from info. |
| </li> |
| </ul> |
| <p> </p> |
| |
| <p><a href="#top">Back to Top</a> | <a href="toc.html">Back to Table of Contents</a></p> |
| <p> </p> |
| |
| <hr> |
| <center> |
| <p> |
| School of Computing * 50 S. Central Campus Dr. Rm. 3190 * Salt Lake City, UT |
| 84112 * <A href="mailto:isp-dev@cs.utah.edu">isp-dev@cs.utah.edu</a><br> |
| <a href="http://www.eclipse.org/org/documents/epl-v10.php">License</a> |
| </p> |
| </center> |
| |
| </body> |
| |
| </html> |