1*855239e5SApple OSS DistributionsSDKROOT ?= / 2*855239e5SApple OSS DistributionsARCHS = x86_64 3*855239e5SApple OSS DistributionsCC = xcrun -sdk $(SDKROOT) cc 4*855239e5SApple OSS DistributionsCODESIGN = xcrun -sdk $(SDKROOT) codesign 5*855239e5SApple OSS DistributionsCFLAGS = -O0 -g -isysroot $(SDKROOT) $(patsubst %, -arch %,$(ARCHS)) 6*855239e5SApple OSS DistributionsLDFLAGS = -Wl,-new_linker -dead_strip \ 7*855239e5SApple OSS Distributions -isysroot $(SDKROOT) $(patsubst %, -arch %,$(ARCHS)) 8*855239e5SApple OSS DistributionsNOPIE_OPTION = -Wl,-no_pie 9*855239e5SApple OSS Distributions 10*855239e5SApple OSS DistributionsEXECUTABLES = exit.nodyld \ 11*855239e5SApple OSS Distributions exit.nopie.dyld-but-no-Libsystem exit.pie.dyld-but-no-Libsystem \ 12*855239e5SApple OSS Distributions exit.nopie.dyld-and-Libsystem exit.pie.dyld-and-Libsystem \ 13*855239e5SApple OSS Distributions exit.nopie exit.pie \ 14*855239e5SApple OSS Distributions printexecinfo 15*855239e5SApple OSS DistributionsOBJECTS = exit-asm.o exit.o printexecinfo.o 16*855239e5SApple OSS Distributions 17*855239e5SApple OSS Distributionsdefault: $(EXECUTABLES) run 18*855239e5SApple OSS Distributions 19*855239e5SApple OSS Distributionsclean: 20*855239e5SApple OSS Distributions rm -f run $(EXECUTABLES) 21*855239e5SApple OSS Distributions rm -f run.o $(OBJECTS) 22*855239e5SApple OSS Distributions 23*855239e5SApple OSS Distributionsrun.o: run.c 24*855239e5SApple OSS Distributions $(CC) -c -o $@ $< $(CFLAGS) 25*855239e5SApple OSS Distributions 26*855239e5SApple OSS Distributionsrun: run.o 27*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) 28*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 29*855239e5SApple OSS Distributions 30*855239e5SApple OSS Distributions# OBJECTS 31*855239e5SApple OSS Distributions 32*855239e5SApple OSS Distributionsexit-asm.o: exit-asm.S 33*855239e5SApple OSS Distributions $(CC) -c -o $@ $< $(CFLAGS) 34*855239e5SApple OSS Distributions 35*855239e5SApple OSS Distributionsexit.o: exit.c 36*855239e5SApple OSS Distributions $(CC) -c -o $@ $< $(CFLAGS) 37*855239e5SApple OSS Distributions 38*855239e5SApple OSS Distributionsprintexecinfo.o: printexecinfo.c 39*855239e5SApple OSS Distributions $(CC) -c -o $@ $< $(CFLAGS) 40*855239e5SApple OSS Distributions 41*855239e5SApple OSS Distributions# EXECUTABLES 42*855239e5SApple OSS Distributions 43*855239e5SApple OSS Distributionsexit.nodyld: exit-asm.o 44*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) -e mystart -nostartfiles -nodefaultlibs -static 45*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 46*855239e5SApple OSS Distributions 47*855239e5SApple OSS Distributions 48*855239e5SApple OSS Distributionsexit.nopie.dyld-but-no-Libsystem: exit-asm.o 49*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) -e mystart $(NOPIE_OPTION) -nostartfiles -nodefaultlibs 50*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 51*855239e5SApple OSS Distributions 52*855239e5SApple OSS Distributionsexit.pie.dyld-but-no-Libsystem: exit-asm.o 53*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) -e mystart -Wl,-pie -nostartfiles -nodefaultlibs 54*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 55*855239e5SApple OSS Distributions 56*855239e5SApple OSS Distributionsexit.nopie.dyld-and-Libsystem: exit-asm.o 57*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) -e mystart $(NOPIE_OPTION) -nostartfiles -nodefaultlibs -lSystem 58*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 59*855239e5SApple OSS Distributions 60*855239e5SApple OSS Distributionsexit.pie.dyld-and-Libsystem: exit-asm.o 61*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) -e mystart -Wl,-pie -nostartfiles -nodefaultlibs -lSystem 62*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 63*855239e5SApple OSS Distributions 64*855239e5SApple OSS Distributionsexit.nopie: exit.o 65*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) -e mystart $(NOPIE_OPTION) 66*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 67*855239e5SApple OSS Distributions 68*855239e5SApple OSS Distributionsexit.pie: exit.o 69*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) -e mystart -Wl,-pie 70*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 71*855239e5SApple OSS Distributions 72*855239e5SApple OSS Distributionsprintexecinfo: printexecinfo.o 73*855239e5SApple OSS Distributions $(CC) -o $@ $< $(LDFLAGS) 74*855239e5SApple OSS Distributions $(CODESIGN) -s - $@ 75*855239e5SApple OSS Distributions 76*855239e5SApple OSS Distributions# ACTIONS 77*855239e5SApple OSS Distributions 78*855239e5SApple OSS Distributionsquick-test: $(EXECUTABLES) run 79*855239e5SApple OSS Distributions ./test.sh 80