xref: /xnu-11215/tools/tests/execperf/Makefile (revision 5c2921b0)
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