Using Makefiles to Compile Your Application

This topic describes use of makefiles to compile your application.

Using Makefiles to Store Information for Compilation

To specify a number of files with various paths and to save this information for multiple compilations, you can use a makefile.

Linux OS and Mac OS X:

To use a makefile to compile your input files, make sure that /usr/bin and /usr/local/bin are in your path.

If you use the C shell, you can edit your .cshrc file and add the following:

setenv PATH  /usr/bin:/usr/local/bin:yourpath

Then you can compile as:

make -f yourmakefile

where -f is the make command option to specify a particular makefile.

Windows OS:

To use a makefile to compile your input files, use the nmake command. For example, if your project is your_project.mak:

nmake /f your_project.mak FPP=ifort.exe LINK32=xilink.exe

The arguments of this nmake command are as follows:

/f

A particular makefile.

your_project.mak

A makefile you want to use to generate object and executable files.

FPP

The compiler-invoking command you want to use. The name of this macro might be different for your makefile. This command invokes the preprocessor.

LINK32

The linker you want to use.

The nmake command creates object files (.obj) and executable files (.exe) specified in your_project.mak file.

Generating Build Dependencies for Use in a Makefile

Use the /gen-dep (Windows* OS) or -gen-dep (Linux* OS and Mac OS* X) compiler option to generate build dependencies for a compilation. the build dependencies includes a list of all files included with INCLUDE statements and .mod files accessed with USE statements. The resulting output can be used to create a makefile to with the appropriate dependencies resolved.

An example follows. Consider a source file that contains the following:

 module b
 include "gendep001b.inc"
 end module b

 program gendep001
 use b
 a_global = b_global
end

When you compile the source using the /gen-dep or -gen-dep option, the following output is produced:

 b.mod : \
 gendep001.f90
gendep001.obj : \
 gendep001.f90 gendep001b.inc

This output indicates that the generated file b.mod depends on the source file gendep001.f90. Similarly, the generated file gendep001.obj depends on the files gendpe001.f90 and gendep001b.inc.


Submit feedback on this help topic

Copyright © 1996-2010, Intel Corporation. All rights reserved.