2019-03-30 16:15:31 +01:00
|
|
|
# Declaration of variables
|
|
|
|
|
C = clang
|
2019-03-31 15:46:52 +02:00
|
|
|
COMMON_FLAGS = -Wall -MMD -fprofile-arcs -ftest-coverage
|
2019-03-30 16:15:31 +01:00
|
|
|
C_FLAGS = $(COMMON_FLAGS)
|
2019-03-31 15:46:52 +02:00
|
|
|
CC = g++
|
2019-03-30 16:15:31 +01:00
|
|
|
CC_FLAGS = $(COMMON_FLAGS) -std=c++17 -g -O0#-O2
|
2019-03-31 15:46:52 +02:00
|
|
|
LD_FLAGS = -lgmp -lmpfr -lgcov
|
|
|
|
|
INCLUDES = -I../../Catch2-master/single_include -I/usr/include/eigen3
|
2019-03-30 16:15:31 +01:00
|
|
|
|
|
|
|
|
# File names
|
|
|
|
|
EXEC = run
|
|
|
|
|
CSOURCES = $(wildcard *.c)
|
|
|
|
|
COBJECTS = $(CSOURCES:.c=.o)
|
|
|
|
|
SOURCES = $(wildcard *.cpp)
|
|
|
|
|
OBJECTS = $(SOURCES:.cpp=.o)
|
|
|
|
|
|
|
|
|
|
# Main target
|
|
|
|
|
$(EXEC): $(COBJECTS) $(OBJECTS)
|
|
|
|
|
$(CC) $(COBJECTS) $(OBJECTS) -o $(EXEC) $(LD_FLAGS)
|
|
|
|
|
|
|
|
|
|
# To obtain object files
|
|
|
|
|
%.o: %.cpp
|
|
|
|
|
$(CC) $(INCLUDES) $(CC_FLAGS) -o $@ -c $<
|
|
|
|
|
|
|
|
|
|
# To obtain object files
|
|
|
|
|
%.o: %.c
|
|
|
|
|
$(C) $(INCLUDES) $(C_FLAGS) -o $@ -c $<
|
|
|
|
|
|
|
|
|
|
-include $(SOURCES:%.cpp=%.d)
|
|
|
|
|
-include $(CSOURCES:%.c=%.d)
|
|
|
|
|
|
|
|
|
|
# To remove generated files
|
|
|
|
|
clean:
|
2019-03-31 15:46:52 +02:00
|
|
|
rm -f $(COBJECTS) $(OBJECTS) $(SOURCES:%.cpp=%.d) $(CSOURCES:%.c=%.d) *.gcov *.gcda *.gcno
|
2019-03-30 16:15:31 +01:00
|
|
|
|
|
|
|
|
cleaner: clean
|
|
|
|
|
rm -f $(EXEC)
|