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