123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- AR = ar cru
- FC = mpif90 -lmpi_cxx
- FFLAGS = -O3 -g -rdynamic -fopenmp -march=native -Wall
- CXX = mpic++
- CXXFLAGS = -std=c++11 -fopenmp -Wall -Wfloat-conversion # need C++11 and OpenMP
- #Optional flags
- #CXXFLAGS += -O0 # debug build
- CXXFLAGS += -O3 -march=native -DNDEBUG # release build
- ifeq ($(shell uname -s),Darwin)
- CXXFLAGS += -g -rdynamic -Wl,-no_pie # for stack trace (on Mac)
- else
- CXXFLAGS += -g -rdynamic # for stack trace
- endif
- #CXXFLAGS += -DSCTL_MEMDEBUG # Enable memory checks
- CXXFLAGS += -DSCTL_PROFILE=5 -DSCTL_VERBOSE # Enable profiling
- CXXFLAGS += -DSCTL_HAVE_MPI #use MPI
- LDLIBS = -L$(LIBDIR) -ltree -lstdc++
- RM = rm -f
- MKDIRS = mkdir -p
- INCDIR = ./include
- SRCDIR = ./src
- OBJDIR = ./obj
- LIBDIR = ./lib
- BINDIR = ./bin
- TARGET_LIB = $(LIBDIR)/libtree.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)/*
- $(RM) -f *~ */*~ */*/*~
|