SRC_PATH=./
LIB_PATH=../src
INC_PATH=../src
OBJ_PATH=../obj/

trealmp:
	g++ trealmp.cpp $(OBJ_PATH)realmp.o -L$(LIB_PATH) -I$(INC_PATH) -Wall -lm -lgmp -lmpfr -o trealmp.x

run_trealmp:
	valgrind -q --leak-check=full ./trealmp.x 

trealmp_io:
	g++ trealmp_io.cpp $(OBJ_PATH)realmp.o $(OBJ_PATH)realmp_io.o -L$(LIB_PATH) -I$(INC_PATH) -Wall -lm -lgmp -lmpfr -o trealmp_io.x

run_trealmp_io:
	valgrind -q --leak-check=full ./trealmp_io.x

trealmpI:
	g++ trealmpI.cpp $(OBJ_PATH)realmp.o $(OBJ_PATH)realmp_io.o $(OBJ_PATH)realmpI.o -L$(LIB_PATH) -I$(INC_PATH) -Wall -lm -lgmp -lmpfr -lmpfi -o trealmpI.x

run_trealmpI:
	valgrind -q --leak-check=full ./trealmpI.x 

tcomplexmp:
	g++ -I$(INC_PATH) $(OBJ_PATH)realmp.o $(OBJ_PATH)realmp_io.o $(OBJ_PATH)complexmp.o tcomplexmp.cpp -L$(LIB_PATH) -Wall -lm -lgmp -lmpfr -o tcomplexmp.x

run_tcomplexmp:
	valgrind -q --leak-check=full ./tcomplexmp.x 

tcomplexmpI:
	g++ tcomplexmpI.cpp $(OBJ_PATH)realmp.o $(OBJ_PATH)realmp_io.o $(OBJ_PATH)realmpI.o $(OBJ_PATH)complexmp.o $(OBJ_PATH)complexmpI.o -L$(LIB_PATH) -I$(INC_PATH) -Wall -lm -lgmp -lmpfr -lmpfi -o tcomplexmpI.x

run_tcomplexmpI:
	valgrind -q --leak-check=full ./tcomplexmpI.x 

tgridmp:
	g++ -I$(INC_PATH) $(OBJ_PATH)realmp.o $(OBJ_PATH)realmp_io.o $(OBJ_PATH)complexmp.o $(OBJ_PATH)gridmp.o tgridmp.cpp -L$(LIB_PATH) -Wall -lm -lgmp -lmpfr -lmpfi -o tgridmp.x

run_tgridmp:
	valgrind -q --leak-check=full --show-leak-kinds=all --track-origins=yes ./tgridmp.x 


all: trealmp trealmp_io trealmpI tcomplexmp tcomplexmpI tgridmp

run_all: run_trealmp run_trealmp_io run_trealmpI run_tcomplexmp run_tcomplexmpI run_tgridmp

clean: 
	rm *.x
