AR = ar cru FC = gfortran FFLAGS = -Ofast -fopenmp -march=native -Wall CXX = g++ CXXFLAGS = -Ofast -fopenmp -march=native -Wall -std=c++11 # need C++11 #CXXFLAGS += -DSCTL_HAVE_SVML -mkl # enable SVML with FC=ifort and CXX=icpc #CXXFLAGS += -DSCTL_MEMDEBUG # Enable memory checks CXXFLAGS += -DSCTL_PROFILE=5 -DSCTL_VERBOSE # Enable profiling LDLIBS = -L$(LIBDIR) -lkernels -lstdc++ RM = rm -f MKDIRS = mkdir -p INCDIR = ./include SRCDIR = ./src OBJDIR = ./obj LIBDIR = ./lib BINDIR = ./bin TARGET_LIB = $(LIBDIR)/libkernels.a TARGET_BIN = \ $(BINDIR)/test-fortran \ $(BINDIR)/test-cpp all : $(TARGET_LIB) $(TARGET_BIN) $(BINDIR)/%: $(SRCDIR)/%.f90 $(TARGET_LIB) -@$(MKDIRS) $(dir $@) $(FC) $(FFLAGS) -I$(INCDIR) $^ $(LDLIBS) -o $@ $(BINDIR)/%: $(SRCDIR)/%.cpp $(TARGET_LIB) -@$(MKDIRS) $(dir $@) $(CXX) $(CXXFLAGS) -I$(INCDIR) $^ $(LDLIBS) -o $@ $(OBJDIR)/%.o: $(SRCDIR)/%.cpp -@$(MKDIRS) $(dir $@) $(CXX) $(CXXFLAGS) -I$(INCDIR) -c $^ -o $@ $(LIBDIR)/%.a: $(OBJDIR)/%.o -@$(MKDIRS) $(dir $@) $(AR) $@ $^ ranlib $@ clean: $(RM) -r $(BINDIR)/* $(LIBDIR)/* $(OBJDIR)/*