CXXFLAGS += -std=c++23 -Wall -Wextra #-DLONG_DOUBLE
LDLIBS += -lstdc++ -lm
MATRIX_DIR = ../matrix
LINEQ_DIR = ../lineq
CXXFLAGS += -I$(MATRIX_DIR) -I$(LINEQ_DIR)

Out.txt: main Makefile
	./$< > $@

main: main.o qrdec.o matrix.o root.o
main.o: root.h $(LINEQ_DIR)/qrdec.h $(MATRIX_DIR)/matrix.h
root.o: root.cc root.h $(LINEQ_DIR)/qrdec.h $(MATRIX_DIR)/matrix.h
	$(CXX) $(CXXFLAGS) -c -o $@ $<
qrdec.o: $(LINEQ_DIR)/qrdec.cc $(LINEQ_DIR)/qrdec.h $(MATRIX_DIR)/matrix.h
	$(CXX) $(CXXFLAGS) -c -o $@ $<
matrix.o: $(MATRIX_DIR)/matrix.cc $(MATRIX_DIR)/matrix.h
	$(CXX) $(CXXFLAGS) -c -o $@ $<

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