SOURCES = $(wildcard *.asm)
OBJS = $(SOURCES:.asm=.o)
EXECS = $(patsubst %.asm,%.runme,$(SOURCES))
all: $(EXECS) bufoverflow

%.o: %.asm
	nasm -g -f elf64 $<

%.runme: %.o
	ld -o $@ $<

clean:
	rm -f *.o *.runme bufoverflow

bufoverflow:
	gcc bufoverflow.c -g -z execstack -o bufoverflow -O1 -fno-unroll-loops -fno-omit-frame-pointer -fno-dce -fno-dse