CXXFLAGS += -std=c++23 -Wall -Wextra #-DLONG_DOUBLE
#CXXFLAGS += -fconcepts-diagnostics-depth=3
LDLIBS += -lstdc++ -lm
MAXERR = 1
ifeq ($(CXX),g++)
  CXXFLAGS += -fmax-errors=$(MAXERR)
else ifeq ($(findstring clang++,$(CXX)),clang++)
  CXXFLAGS += -ferror-limit=$(MAXERR)
else
  CXXFLAGS += -fmax-errors=$(MAXERR)
endif

MDIR = ../matrix
TMDIR = ../tmatrix
CXXFLAGS += -I$(MDIR) -I$(TMDIR)

Out.txt: main tmain Makefile
	>$@
	./main -n 4 -m 3 >> $@
	echo "\n" >> $@
	./tmain -n 4 -m 3 >> $@

main: main.o qrdec.o matrix.o
main.o: qrdec.h $(MDIR)/matrix.h
qrdec.o: qrdec.h $(MDIR)/matrix.h
matrix.o: $(MDIR)/matrix.cc $(MDIR)/matrix.h
	$(CXX) $(CXXFLAGS) -c -o $@ $<
tmain: tmain.o
tmain.o: tmain.cc tqrdec.h $(TMDIR)/matrix.h

clean:
	$(RM) main log* *.o [Oo]ut*
