1include ../Makefile.common 2 3CFLAGS = -O0 -g -isysroot $(SDKROOT) $(ARCH_FLAGS) 4CFLAGS += -Wl,-sectcreate,__INFO_FILTER,__disable,/dev/null 5LDFLAGS = -dead_strip \ 6 -isysroot $(SDKROOT) $(ARCH_FLAGS) 7 8OBJROOT?=$(shell /bin/pwd)/BUILD/obj 9SYMROOT?=$(shell /bin/pwd)/BUILD/sym 10DSTROOT?=$(shell /bin/pwd)/BUILD/dst 11 12EXECUTABLES = exit.nodyld \ 13 exit.nopie.dyld-but-no-Libsystem exit.pie.dyld-but-no-Libsystem \ 14 exit.nopie.dyld-and-Libsystem exit.pie.dyld-and-Libsystem \ 15 exit.nopie exit.pie \ 16 printexecinfo run test 17OBJECTS = exit-asm.o exit.o printexecinfo.o run.o 18 19default: $(addprefix $(DSTROOT)/,$(EXECUTABLES)) 20 21clean: 22 rm -f $(addprefix $(OBJROOT)/,$(OBJECTS)) 23 rm -f $(addprefix $(SYMROOT)/,$(EXECUTABLES)) 24 rm -rf $(addsuffix .dSYM,$(addprefix $(SYMROOT)/,$(EXECUTABLES))) 25 rm -f $(addprefix $(DSTROOT)/,$(EXECUTABLES)) 26 27# DEPENDENCIES 28$(addprefix $(DSTROOT)/,$(EXECUTABLES)): | DSTROOT SYMROOT 29 30$(addprefix $(OBJROOT)/,$(OBJECTS)): | OBJROOT 31 32DSTROOT SYMROOT OBJROOT: 33 $(_v)mkdir -p $($@) 34 35# OBJECTS 36 37$(OBJROOT)/exit-asm.o: exit-asm.S | OBJROOT 38 $(CC) -c -o $@ $< $(CFLAGS) 39 40$(OBJROOT)/exit.o: exit.c | OBJROOT 41 $(CC) -c -o $@ $< $(CFLAGS) 42 43$(OBJROOT)/printexecinfo.o: printexecinfo.c | OBJROOT 44 $(CC) -c -o $@ $< $(CFLAGS) 45 46$(OBJROOT)/run.o: run.c | OBJROOT 47 $(CC) -c -o $@ $< $(CFLAGS) 48 49# EXECUTABLES 50 51$(DSTROOT)/exit.nodyld: $(OBJROOT)/exit-asm.o 52 $(CC) -o $@ $< $(LDFLAGS) -e _main -nostartfiles -nodefaultlibs -static -Wl,-segalign,0x4000 53 $(CODESIGN) -s - $@ 54 55$(DSTROOT)/exit.nopie.dyld-but-no-Libsystem: $(OBJROOT)/exit-asm.o 56 $(CC) -o $@ $< $(LDFLAGS) -e _main -Wl,-no_pie -nostartfiles -nodefaultlibs -Wl,-no_new_main 57 $(CODESIGN) -s - $@ 58 59$(DSTROOT)/exit.pie.dyld-but-no-Libsystem: $(OBJROOT)/exit-asm.o 60 $(CC) -o $@ $< $(LDFLAGS) -e _main -Wl,-pie -nostartfiles -nodefaultlibs -Wl,-no_new_main 61 $(CODESIGN) -s - $@ 62 63$(DSTROOT)/exit.nopie.dyld-and-Libsystem: $(OBJROOT)/exit-asm.o 64 $(CC) -o $@ $< $(LDFLAGS) -Wl,-no_pie -nostartfiles -nodefaultlibs -lSystem 65 $(CODESIGN) -s - $@ 66 67$(DSTROOT)/exit.pie.dyld-and-Libsystem: $(OBJROOT)/exit-asm.o 68 $(CC) -o $@ $< $(LDFLAGS) -Wl,-pie -nostartfiles -nodefaultlibs -lSystem 69 $(CODESIGN) -s - $@ 70 71$(DSTROOT)/exit.nopie: $(OBJROOT)/exit.o 72 $(CC) -o $@ $< $(LDFLAGS) -Wl,-no_pie 73 $(CODESIGN) -s - $@ 74 75$(DSTROOT)/exit.pie: $(OBJROOT)/exit.o 76 $(CC) -o $@ $< $(LDFLAGS) -Wl,-pie 77 $(CODESIGN) -s - $@ 78 79$(DSTROOT)/printexecinfo: $(OBJROOT)/printexecinfo.o 80 $(CC) -o $@ $< $(LDFLAGS) 81 $(CODESIGN) -s - $@ 82 83$(DSTROOT)/run: $(OBJROOT)/run.o 84 $(CC) -o $(SYMROOT)/run $< $(LDFLAGS) 85 $(DSYMUTIL) $(SYMROOT)/run 86 $(STRIP) -S -o $@ $(SYMROOT)/run 87 $(CODESIGN) -s - $@ 88 89$(DSTROOT)/test: test.sh 90 install -m 755 $< $@ 91