CPP_ARGS = -std=c++20 -O2 -Wall -Wextra -Iinclude -ggdb GTKMM_CPP_ARGS = $(shell pkg-config --cflags gtkmm-4.0) GTKMM_LD_ARGS = $(shell pkg-config --libs gtkmm-4.0) # https://github.com/open-mpi/ompi/issues/5157 MPI_CPP_ARGS = $(shell mpic++ --showme:compile) -DOMPI_SKIP_MPICXX MPI_LD_ARGS = $(shell mpic++ --showme:link) default: bin/bench bin/score bin/tabulator-mpi clean: rm -r obj bin bin/bench: obj/bench/main.o obj/bench/bench_window.o obj/bench/core_widget.o obj/lib94.o @mkdir -p $(dir $@) g++ ${CPP_ARGS} $^ ${GTKMM_LD_ARGS} -o $@ bin/score: obj/score/main.o obj/lib94.o @mkdir -p $(dir $@) g++ ${CPP_ARGS} $^ -o $@ bin/tabulator-mpi: obj/tabulator-mpi/main.o obj/tabulator-mpi/head.o obj/tabulator-mpi/worker.o obj/lib94.o @mkdir -p $(dir $@) g++ ${CPP_ARGS} $^ ${MPI_LD_ARGS} -o $@ obj/lib94.o: obj/lib94/core.o obj/lib94/executors.o obj/lib94/warrior.o ld -r $^ -o $@ obj/bench/%.o: bench/%.cpp @mkdir -p $(dir $@) g++ -c ${CPP_ARGS} ${GTKMM_CPP_ARGS} $^ -o $@ obj/tabulator-mpi/%.o: tabulator-mpi/%.cpp @mkdir -p $(dir $@) g++ -c ${CPP_ARGS} ${MPI_CPP_ARGS} $^ -o $@ obj/%.o: %.cpp @mkdir -p $(dir $@) g++ -c ${CPP_ARGS} $^ -o $@