12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- AR = ar cru
- FC = gfortran
- FFLAGS = -O3 -fopenmp -march=native -Wall
- CXX = g++
- CXXFLAGS = -O3 -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)/*
|