1CC=gcc 2CCFLAGS=-m32 -Wall -Wextra -Werror -fno-stack-protector -nostdinc -fno-builtin 3ASFLAGS=-m32 4 5LD=ld 6LDFLAGS_ELF=-melf_i386 -T link.ld 7LDFLAGS_BIN=-melf_i386 -T link.ld --oformat=binary 8LIBS=$(shell $(CC) $(CCFLAGS) -print-libgcc-file-name) 9 10AOUT_KLUDGE_BIN=$(foreach x,$(shell seq 1 9),aout_kludge_$x.bin) 11 12all: mmap.elf modules.elf $(AOUT_KLUDGE_BIN) 13 14mmap.elf: start.o mmap.o libc.o link.ld 15 $(LD) $(LDFLAGS_ELF) -o $@ $^ $(LIBS) 16 17modules.elf: start.o modules.o libc.o link.ld 18 $(LD) $(LDFLAGS_ELF) -o $@ $^ $(LIBS) 19 20aout_kludge_%.bin: aout_kludge_%.o link.ld 21 $(LD) $(LDFLAGS_BIN) -o $@ $^ $(LIBS) 22 23.PRECIOUS: aout_kludge_%.o 24aout_kludge_%.o: aout_kludge.S 25 $(CC) $(ASFLAGS) -DSCENARIO=$* -c -o $@ $^ 26 27%.o: %.c 28 $(CC) $(CCFLAGS) -c -o $@ $^ 29 30%.o: %.S 31 $(CC) $(ASFLAGS) -c -o $@ $^ 32