.PHONY:

CXX_COMPILER  := g++-11
COMPILE_FLAGS := -std=c++14 -O3
PYTHON        := python3.10

LIBS := -lfunc -larmadillo
UNAME_S := $(shell uname -s)

ifeq ($(UNAME_S), Linux)
LINKING_FLAGS := $(LIBS) -fopenmp -lquadmath # assuming g++ is from the gcc
endif

ifeq ($(UNAME_S), Darwin)
LINKING_FLAGS := $(LIBS) -Xpreprocessor -fopenmp -lgomp
#LINKING_FLAGS := $(LIBS)
#LINKING_FLAGS := $(LIBS) -lquadmath -fopenmp # assuming g++ is from the gcc
endif

all: python_plot

python_plot: linear_mem_vs_error linear_mem_vs_time
	time ./$< > stepverr.dat
	time ./$(word 2,$^) 3 7 200 5000 100000 0 > stepvtime.dat
	$(PYTHON) plot.py stepverr.dat 0.1
	$(PYTHON) plot.py stepvtime.dat 0.14

linear_mem_vs_time: linear_mem_vs_time.cpp
	$(CXX_COMPILER) $(COMPILE_FLAGS) $< -o $@ $(LINKING_FLAGS)

linear_mem_vs_error: linear_mem_vs_error.cpp
	$(CXX_COMPILER) $(COMPILE_FLAGS) $< -o $@ $(LINKING_FLAGS)


clean:
	rm -f linear_mem_vs_time linear_mem_vs_error
