Developer Guide and Reference

Contents

Using Makefiles to Compile Your Application

This topic describes the use of makefiles to compile your application. You can use makefiles to specify a number of files with various paths, and to save this information for multiple compilations.

Using Makefiles to Store Information for Compilation on Linux*
or
macOS*

To run
make
from the command line using the Intel®
C++
Compiler, make sure that
/usr/bin
and
/usr/local/bin
are in your
PATH
environment variable.
If you use the C shell, you can edit your
.cshrc
file and add the following:
setenv PATH /usr/bin:/usr/local/bin:
$PATH
To use the Intel® C++ Compiler, your makefile must include the setting
CC=icpc
. Use the same setting on the command line to instruct the makefile to use the Intel® C++ Compiler. If your makefile is written for GCC*, the GNU* C compiler, you need to change the command line options that are not recognized by the Intel® C++ Compiler. Run
make
, using the following syntax:
make -f
yourmakefile
Where
-f
is the
make
command option to specify a particular makefile name.

Using Makefiles to Store Information for Compilation on Windows*

To use a makefile to compile your source files, use the
nmake
command
with the following syntax:
nmake /f [makefile_name.mak] CPP=[compiler_name.exe] [LINK32=[linker_name.exe]
For example:
prompt> nmake /f your_project.mak CPP=icl.exe LINK32=xilink.exe
Argument
Description
/f
The
nmake
option to specify a makefile.
your_project.mak
The makefile used to generate object and executable files.
CPP
The preprocessor/compiler that generates object and executable files. (The name of this macro may be different for your makefile.)
LINK32
The linker that is used.
The
nmake
command creates object files (
.obj
) and executable files (
.exe
) from the information specified in the
your_project.mak
makefile.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804