
# You can change these.

# C compilers: gcc: GNU; icc: Intel; pgcc: Portland Group Inc (PGI)
CC     = icc
# -O means optimize for performance;
# -g -pg means save information about percentage
#   of runtime spent in each routine.
CFLAGS = -O2 -xS -g -pg
# -UDEBUG: don't show debugging output
# -DDEBUG: do    show debugging output
DEBUG  = -UDEBUG

# You shouldn't change the rest of this file unless you know what you're doing.

NBODY_UTILITY_H   = nbody_utility.h
NBODY_UTILITY_HS  = ${NBODY_UTILITY_H}
NBODY_PARTICLE_H  = nbody_particle.h
NBODY_PARTICLE_HS = ${NBODY_UTILITY_HS} ${NBODY_PARTICLE_H}
NBODY_FORCE_H     = nbody_force.h
NBODY_FORCE_HS    = ${NBODY_PARTICLE_HS} ${NBODY_FORCE_H}
NBODY_H           = nbody.h
NBODY_HS          = ${NBODY_UTILITY_H} ${NBODY_PARTICLE_H} ${NBODY_FORCE_H} \
                    ${NBODY_H}
NBODY_UTILITY_C   = nbody_utility.c
NBODY_PARTICLE_C  = nbody_particle.c
NBODY_FORCE_C     = nbody_force.c
NBODY_C           = nbody.c
NBODY_UTILITY_O   = nbody_utility.o
NBODY_PARTICLE_O  = nbody_particle.o
NBODY_FORCE_O     = nbody_force.o
NBODY_O           = nbody.o
NBODY_OS          = ${NBODY_UTILITY_O} ${NBODY_FORCE_O} ${NBODY_PARTICLE_O}
NBODY_EXE         = nbody

LIBS        = -lm

EXECUTABLE  = ${NBODY_EXE}
EXECUTABLES = ${EXECUTABLE}

all:	${EXECUTABLES}

clean:	
	rm -f *.[aodD] *.[mM][oO][dD] ${EXECUTABLES}

${NBODY_EXE}:		${NBODY_OS} ${NBODY_O}
	${CC} ${CFLAGS} ${DEBUG} -o ${NBODY_EXE} ${NBODY_O} ${NBODY_OS} ${LIBS}

${NBODY_O}:		${NBODY_HS} ${NBODY_H} ${NBODY_C}
	${CC} ${CFLAGS} ${DEBUG} -c ${NBODY_C}

${NBODY_FORCE_O}:	${NBODY_FORCE_HS} ${NBODY_FORCE_C}
	${CC} ${CFLAGS} ${DEBUG} -c ${NBODY_FORCE_C}

${NBODY_PARTICLE_O}:	${NBODY_PARTICLE_HS} ${NBODY_PARTICLE_C}
	${CC} ${CFLAGS} ${DEBUG} -c ${NBODY_PARTICLE_C}

${NBODY_UTILITY_O}:	${NBODY_UTILITY_HS} ${NBODY_UTILITY_C}
	${CC} ${CFLAGS} ${DEBUG} -c ${NBODY_UTILITY_C}

