xref: /xnu-8020.121.3/tools/tests/execperf/Makefile (revision fdd8201d7b966f0c3ea610489d29bd841d358941)
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