# openmpi = Fedora Core 6, gcc/g++ 4.1, OpenMPI-1.1 , FFTW2, Open MPI

SHELL = /bin/sh
#.IGNORE:

# ---------------------------------------------------------------------
# System-specific settings
# edit as needed for your machine

# additional system libs needed by LAMMPS libs
# NOTE: these settings are ignored if the LAMMPS package (e.g. gpu, meam)
#       which needs these libs is not included in the LAMMPS build

gpu_SYSLIB =          -lcudart
meam_SYSLIB =         -lifcore -lsvml -lompstub -limf
reax_SYSLIB =         -lifcore -lsvml -lompstub -limf
user-atc_SYSLIB =     -lblas -llapack

gpu_SYSLIBPATH =      -L/usr/local/cuda/lib64
meam_SYSLIBPATH =     -L/opt/intel/fce/10.0.023/lib
reax_SYSLIBPATH =     -L/opt/intel/fce/10.0.023/lib
user-atc_SYSLIBPATH = 

include	Makefile.package

# compiler/linker settings
# NOTE: specify how to compile/link with MPI
#       either an MPI installed on your machine, or the src/STUBS dummy lib
# NOTE: specify an FFT option, e.g. -DFFT_NONE, -DFFT_FFTW, etc

CC =		mpic++
CCFLAGS =	$(PKGINC) -O2  -funroll-loops  -DFFT_FFTW -DLAMMPS_GZIP \
		-fstrict-aliasing -Wall -W -Wno-uninitialized
NOALIAS = 	-fno-strict-aliasing
DEPFLAGS =	-M
LINK =		mpic++
LINKFLAGS =	$(PKGPATH) $(PKGPATHSYS)
USRLIB =	$(PKGLIB) -lfftw 
SYSLIB =	$(PKGLIBSYS)
ARCHIVE =	ar
ARFLAGS =	-rcsv
SIZE =		size

# ---------------------------------------------------------------------
# no need to edit below here

# Link target

$(EXE):	$(OBJ)
	$(LINK) $(LINKFLAGS) $(OBJ) $(USRLIB) $(SYSLIB) -o $(EXE)
	$(SIZE) $(EXE)

# Library target

lib:	$(OBJ)
	$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)

# Compilation rules

%.o:%.cpp
	$(CC) $(CCFLAGS) -c $<

%.d:%.cpp
	$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@

# explicit overrides for files that violate ansi aliasing rules

pair.o : pair.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_table.o : pair_table.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_eam_alloy_opt.o : pair_eam_alloy_opt.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_eam_fs_opt.o : pair_eam_fs_opt.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_eam_opt.o : pair_eam_opt.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_lj_charmm_coul_long_opt.o : pair_lj_charmm_coul_long_opt.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_lj_cut_opt.o : pair_lj_cut_opt.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_morse_opt.o : pair_morse_opt.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_lj_cut_coul_long.o : pair_lj_cut_coul_long.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_cg_cut_coul_cut.o : pair_cg_cut_coul_cut.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_cg_cut_coul_long.o : pair_cg_cut_coul_long.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_lj_charmm_coul_long.o : pair_lj_charmm_coul_long.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

pair_lj_cut_coul_long_tip4p.o : pair_lj_cut_coul_long_tip4p.cpp
	$(CC) $(CCFLAGS) $(NOALIAS) -c $<

# Individual dependencies

DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
