Sélectionner une révision Git
Makefile 1,26 Kio
CC=mpicc
CXX=mpicxx
FLAGS=-Wall -Wextra -Werror -fPIC -fno-rtti
TEST_FLAGS=-Wall -Wextra -Werror -fPIC
LDFLAGS=-shared
INCLUDE=-I ./include
PLUGIN_INCLUDE=$(INCLUDE) -I $(shell $(CC) -print-file-name=plugin)/include
PLUGIN_FLAGS=-fplugin=$(LIBD)/libplugin.so
# Options dependant flags
OPTI_FLAGS=-O2
DEBUG_FLAGS=-g -Og
DEBUG_TEST_FLAGS=-fdump-tree-all -fdump-tree-all-graph
# Comment to disable debug
FLAGS+=$(DEBUG_FLAGS)
TEST_FLAGS+=$(DEBUG_TEST_FLAGS)
# Directories
SRCD=src
OBJD=obj
LIBD=lib
TARGETD=bin
TESTD=test
TESTSRCD=$(SRCD)/test
# Files
SRCS=$(notdir $(wildcard ($(SRCD)/*.cpp))
OBJS=$(addprefix $(OBJD)/, $(SRCS:cpp=o))
.PHONY: plugin
plugin:
mkdir -p $(OBJD)
mkdir -p $(LIBD)
$(MAKE) $(LIBD)/libplugin.so
.PHONY: test
test: $(TESTD)/test2
$(TESTD)/%: $(TESTSRCD)/%.c
$(CC) $(TEST_FLAGS) $(PLUGIN_FLAGS) $^ -o $@
$(OBJD)/%.o: $(SRCD)/%.cpp
$(CXX) $(FLAGS) $(PLUGIN_INCLUDE) -c $^ -o $@
$(LIBD)/libplugin.so: $(OBJD)/plugin.o $(OBJD)/pass_mpi_collective.o
$(CXX) $(FLAGS) $(LDFLAGS) $^ -o $@
# removing test scince plugin was rebuild
rm -rf $(TESTD)
.PHONY: clean
clean:
rm -rf $(OBJD)
rm -rf $(TARGETD)
rm -rf $(LIBD)
rm -rf $(TESTD)
.PHONY: style
style:
astyle $(SRCD)/*.cpp ./include/*.hpp -n -A1 -p -xj -J -xg -H -k3 -O -xC80 \
-t2 -xt1 -m0