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