#
# Plugin Makefile generated by Psi4.
#
# You shouldn't need to modify anything in this file.
#

# Location of your PSI4 source
PSI4_TOP_SRCDIR = /Users/jturney/Code/psi4/source
# Location of your PSI4 install, by default as listed
PSI4_TOP_OBJDIR = /Users/jturney/Build/psi4/compile-mpi

ELEMENTAL_LIBS = -L/Users/jturney/Build/elemental -lelemental \
				 -L/Users/jturney/Build/elemental/external/plcg -lplcg \
				 -L/Users/jturney/Build/elemental/external/pmrrr -lpmrrr -llapack-addons
#
# Don't modify below unless you know what you're doing.
#

# Location of your PSI4 source
top_srcdir := $(PSI4_TOP_SRCDIR)
# Location of your PSI4 install, by default as listed
top_objdir := $(PSI4_TOP_OBJDIR)

# Start by figuring out whether we're on Linux or Mac (sorry, Mr. Gates)
UNAME := $(shell uname)

include $(top_objdir)/src/bin/MakeVars

CXXDEF += -DHAVE_MPI -DHAVE_ELEMENTAL
CXXINC += -I/Users/jturney/Build/elemental/include

# Reset these values, MakeVars changes them to valud only valid in Psi4's objdir
# Location of your PSI4 source
top_srcdir := $(PSI4_TOP_SRCDIR)
# Location of your PSI4 install, by default as listed
top_objdir := $(PSI4_TOP_OBJDIR)

PSITARGET = $(shell basename `pwd`).so
PSILIBS = -L$(top_objdir)/lib -lPSI_plugin $(ELEMENTAL_LIBS)

CXXSRC = $(notdir $(wildcard *.cc))
DEPENDINCLUDE = $(notdir $(wildcard *.h))

BINOBJ = $(CXXSRC:%.cc=%.o)

default:: $(PSITARGET)

# Add the flags needed for shared library creation
ifeq ($(UNAME), Linux)
    LDFLAGS = -shared
endif
ifeq ($(UNAME), Darwin)
    LDFLAGS = -shared -undefined dynamic_lookup
    CXXOTH += -fno-common
endif

# The object files
%.o: %.cc
	$(CXX) $(CXXFLAGS) $(CXXINCLUDE) -c $< $(OUTPUT_OPTION)

$(PSITARGET): $(BINOBJ)
	$(CXX) $(LDFLAGS) -o $@ $^ $(CXXDBG) $(PSILIBS)

# Erase all compiled intermediate files
clean:
	rm -f $(BINOBJ) $(PSITARGET) *.d *.pyc *.test output.dat psi.timer.dat

# Dependency handling
%.d: %.cc
	$(CXXDEPEND) $(CXXDEPENDFLAGS) $(CXXFLAGS) $(CXXINCLUDE) $< | sed 's/^$*.o/$*.o $*.d/g' > $(@F)

ifneq ($(DODEPEND),no)
$(BINOBJ:%.o=%.d): $(DEPENDINCLUDE)
include $(BINOBJ:%.o=%.d)
endif

