EXEC := bringelle CC := gcc -c -m32 -fno-pie -fno-builtin -fno-stack-protector UTILS_SRC := $(wildcard utils/*.c) all: $(EXEC) $(EXEC): boot.o utils.o bringelle.o for obj in $^ ;\ do \ objcopy --remove-section .note.gnu.property $${obj} ; \ done ld -Ttext=0x00100000 -melf_i386 -nostdlib --oformat=binary -o bringelle $^ bringelle.o: bringelle.c $(CC) $^ utils.o: $(UTILS_SRC) for src in $^ ;\ do \ obj=$$(basename $${src} ".c")".o" ;\ $(CC) $${src} -o utils/$${obj} ;\ done ld -melf_i386 -relocatable utils/*.o -o utils.o boot.o: ./boot/boot.S as --32 -o $@ $^ -mx86-used-note=no clean: find ./ -name "*.o" -delete - rm $(EXEC) .PHONY: clean