
all: example1 example2 recursion

example1:
	gcc -S -Og -fno-stack-protector -fno-asynchronous-unwind-tables -fomit-frame-pointer example1.c
	gcc -g -Og -fno-stack-protector -fno-asynchronous-unwind-tables -fomit-frame-pointer -o example1 example1.c

example2:
	gcc -S -Og -fno-stack-protector -fno-asynchronous-unwind-tables -fomit-frame-pointer example2.c

recursion:
	gcc -S -Og -fno-stack-protector -fno-asynchronous-unwind-tables -fomit-frame-pointer -fno-optimize-sibling-calls recursion.c
	gcc -g -Og -fno-stack-protector -fno-asynchronous-unwind-tables -fomit-frame-pointer -fno-optimize-sibling-calls -o recursion recursion.c

clean:
	rm -f *.s
	rm -f *.o
	rm -f *~
	rm example1
	rm recursion
