Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28456 Discussions

Migration from gfortran to intel. Makefile issues.

abraham_a_
Beginner
343 Views

I am trying to run a program on intel (some options are better supported by it) but the problem comes when I try to compile the file. The makefile itself works but the makefile.in has some issues with the flags. 

The makefile.in file: 

# Makefile.LINUX.in

WARN = -ansi -fullwarn

PLATFORM = LINUX
#F90 = mpif90
cc = mpicc
CC = mpicc
AR = xiar rcv
RANLIB = xiar -ts

MPI_LIBS = 

PARMETIS_LIBS = -L/opt/parmetis -lparmetis
METIS_LIBS = -lmetis

#HDF5_DIR = /opt/hdf5
#HDF5_INC = -I$(HDF5_DIR)/include
#HDF5_LIB = -L$(HDF5_DIR)/lib -lhdf5_fortran -lhdf5hl_fortran -lhdf5 -lhdf5_hl -lz

# compile with -DNOHDF to disable hdf5 support

# with optimization 
CFLAGS = -c -O3
OPTFFLAGS = -c -O3 -DMPIDEFS2 -DLIT_SKIP_HOOKS -DNOHDF 
CDPOPTFFLAGS = -c -O3 -DMPIDEFS2 
VERYOPTFFLAGS = -c -O3 -xW -DMPIDEFS2 -DLIT_SKIP_HOOKS

DEBUGFLAGS = -C -debug extended -traceback -DNOHDF 
DBGFFLAGS = -c -g -O0 $(DEBUGFLAGS) -DMPIDEFS2 -DDEBUG_MODE -DLIT_SKIP_HOOKS
CDPDBGFFLAGS = -c -g -O0 $(DEBUGFLAGS) -DMPIDEFS2 -DDEBUG_MODE 

FLD = 

and the error that comes up

(cd src ; make "FFLAGS = -c -O3 -DMPIDEFS2 -DLIT_SKIP_HOOKS -DNOHDF ")
make[1]: Entering directory '/home/igarcia/U-Arizona/compiled/lit1.1-1_int/src'
c -O3 -DMPIDEFS2 -DLIT_SKIP_HOOKS -DNOHDF   -I. precision_m.f90
make[1]: c: Command not found
make[1]: [Makefile:45: precision_m.o] Error 127 (ignored)

I don't really know what I am doing wrong since the c option in gfortran and ifort is the same... perhaps a syntax error. 

0 Kudos
1 Reply
Juergen_R_R
Valued Contributor I
343 Views

The question is not related to the Intel compiler I would say. And this is not the complete Makefile you are showing I guess. But it looks like you haven't set the variable FC and the Makefile wants to create either a binary or an object file (.o) and thinks the correct rule is to invoke the c compiler. Or some variable erroneously got the value c. 

0 Kudos
Reply