# Makefile for C++ programming

###################################################
# COMPILER
###################################################

CC = gcc

###################################################
# TARGETS:

TARGETS = Program1.exe Program1_guard.exe Program2.exe Program2_guard.exe Program3.exe Program4_n9.exe Program4_n19.exe Program4_n39.exe

###################################################
# COMPILE RULE FOR CC
###################################################
%.exe: %.cpp 
	$(CC) $< -std=c++11 -lstdc++ -o $@ 

###################################################
# TARGETS
###################################################

all: ${TARGETS}

Program1.exe: 

Program1_guard.exe: 

Program2.exe: 

Program2_guard.exe: 

Program3.exe: 

Program4_n9.exe: Program4_n9.cpp
	$(CC) $< -std=c++11 -lstdc++ -lmpfr -o $@ 

Program4_n19.exe: Program4_n19.cpp 
	$(CC) $< -std=c++11 -lstdc++ -lmpfr -o $@ 

Program4_n39.exe: Program4_n39.cpp 
	$(CC) $< -std=c++11 -lstdc++ -lmpfr -o $@ 

###################################################
# Run executable files
###################################################

run:
	# "WE RUN PROGRAM 1 OF THE PAPER WITH GUARD FLAG OFF"
	./Program1.exe
	# "WE RUN PROGRAM 1 OF THE PAPER WITH GUARD FLAG ON"
	./Program1_guard.exe
	# "WE RUN PROGRAM 2 OF THE PAPER WITH GUARD FLAG OFF"
	./Program2.exe
	# "WE RUN PROGRAM 2 OF THE PAPER WITH GUARD FLAG ON"
	./Program2_guard.exe
	# "WE RUN PROGRAM 3 OF THE PAPER"
	./Program3.exe
	# "WE RUN PROGRAM 4 OF THE PAPER FOR n=9"
	./Program4_n9.exe
	# "WE RUN PROGRAM 4 OF THE PAPER FOR n=19"
	./Program4_n19.exe
	# "WE RUN PROGRAM 4 OF THE PAPER FOR n=39"
	./Program4_n39.exe

###################################################
# Clean executable files
###################################################

clean: 
	# remove all executables
	rm -f *.exe

###################################################
# Phony targets
###################################################

.PHONY: run clean


###################################################
# END
###################################################