Modifying Your makefile

If you use makefiles to build your gcc application, you need to change the value for the CC compiler variable to use the Intel compiler. You may also want to review the options specified by CFLAGS. A simple example follows:

gcc makefile

# Use gcc compiler
CC = gcc
# Compile-time flags
CFLAGS = -O2 -std=c99
all: area_app
area_app: area_main.o area_functions.o
    $(CC) area_main.o area_functions.o -o area
area_main.o: area_main.c
    $(CC) -c $(CFLAGS) area_main.c
area_functions.o: area_functions.c
    $(CC) -c -fno-asm $(CFLAGS) area_functions.c
clean:
    rm -rf *o area

Modified makefile for Intel Compiler

# Use Intel C compiler
CC = icc
# Compile-time flags
CFLAGS = -std=c99
all: area-app
area-app: area_main.o area_functions.o
    $(CC) area_main.o area_functions.o -o area
area_main.o: area_main.c
    $(CC) -c $(CFLAGS) area_main.c
area_functions.o: area_functions.c
    gcc -c -O2 -fno-asm $(CFLAGS) area_functions.c
clean:
    rm -rf *o area

If your gcc code includes features that are not supported with the Intel compiler, such as compiler options, language extensions, macros, pragmas, etc., you can compile those sources separately with gcc if necessary.

In the above makefile, area_functions.c is an example of a source file that includes features unique to gcc. Since the Intel compiler uses the -O2 compiler option by default and gcc's default is -O0, we instruct gcc to compile with -O2. We also include the -fno-asm switch from the original makefile since this switch is not supported with the Intel compiler. With the modified makefile, the output of make is:

icc -c -std=c99 area_main.c
gcc -c -O2 -fno-asm -std=c99 area_functions.c
icc area_main.o area_functions.o -o area

See Also


Submit feedback on this help topic

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