]> git.saurik.com Git - apple/xnu.git/blob - tools/tests/Makefile
xnu-7195.101.1.tar.gz
[apple/xnu.git] / tools / tests / Makefile
1 include Makefile.common
2
3 ifndef SRCROOT
4 export SRCROOT := $(shell /bin/pwd)
5 endif
6 ifndef OBJROOT
7 export OBJROOT = $(SRCROOT)/BUILD/obj
8 endif
9 ifndef DSTROOT
10 export DSTROOT = $(SRCROOT)/BUILD/dst
11 endif
12 ifndef SYMROOT
13 export SYMROOT = $(SRCROOT)/BUILD/sym
14 endif
15
16 ifdef RC_ProjectName
17 DSTSUBPATH = $(DSTROOT)/AppleInternal/CoreOS/tests/xnu
18 BATS_CONFIG_PATH = $(DSTROOT)/AppleInternal/CoreOS
19 else
20 DSTSUBPATH = $(DSTROOT)
21 BATS_CONFIG_PATH = $(DSTROOT)
22 endif
23
24 DSTSUBPATH_KEXTS = $(DSTROOT)/System/AppleInternal/Library/AuxiliaryExtensions
25
26 COMMON_TARGETS = unit_tests \
27 MPMMTest \
28 packetdrill \
29 affinity \
30 superpages \
31 zero-to-n \
32 jitter \
33 perf_index \
34 personas \
35 unixconf \
36 kernpost_test_report \
37
38 KEXT_TARGETS = pgokext.kext
39
40 IPHONE_TARGETS =
41
42 MAC_TARGETS =
43
44 BATS_TARGET = $(BATS_CONFIG_PATH)/BATS
45
46 ifeq "$(Embedded)" "YES"
47 TARGETS = $(addprefix $(DSTSUBPATH)/, $(COMMON_TARGETS) $(IPHONE_TARGETS)) $(addprefix $(DSTSUBPATH_KEXTS)/, $(KEXT_TARGETS))
48 else
49 TARGETS = $(addprefix $(DSTSUBPATH)/, $(COMMON_TARGETS) $(MAC_TARGETS)) $(addprefix $(DSTSUBPATH_KEXTS)/, $(KEXT_TARGETS))
50 endif
51
52 all: $(BATS_TARGET) $(TARGETS)
53
54 .PHONY: always
55
56 always:
57
58 # NOTE: RC_ARCHES nonsense is here because code signing will fail on kexts if we include a i386 slice
59 # <rdar://problem/29878263> CoreOSLobo: xnu_tests-4026 fails to codesign
60
61 $(DSTSUBPATH_KEXTS)/pgokext.kext: always
62 xcodebuild -configuration Debug -project $(SRCROOT)/testkext/testkext.xcodeproj -target pgokext DSTROOT=$(DSTSUBPATH_KEXTS) SYMROOT=$(SYMROOT)/testkext SRCROOT=$(SRCROOT)/testkext OBJROOT=$(OBJROOT)/testkext SDKROOT=$(SDKROOT) RC_ARCHS="$(subst i386,,$(RC_ARCHS))" install
63
64 $(DSTSUBPATH)/%: always
65 $(_v)echo Building $@
66 $(_v)mkdir -p $@
67 $(_v)mkdir -p $(OBJROOT)/$(notdir $@)
68 $(_v)mkdir -p $(SYMROOT)/$(notdir $@)
69 $(_v)$(MAKE) -C $(SRCROOT)/$(notdir $@) SRCROOT=$(SRCROOT)/$(notdir $@) DSTROOT=$@ OBJROOT=$(OBJROOT)/$(notdir $@) SYMROOT=$(SYMROOT)/$(notdir $@) SDKROOT=$(SDKROOT) BASEDSTROOT=$(DSTROOT)
70 $(_v)find $@ -type d -name "*.dSYM" -exec cp -a {} $(SYMROOT)/ ';'
71
72 $(BATS_TARGET): $(TARGETS)
73 $(_v)mkdir -p $@
74 $(_v)mkdir -p $(OBJROOT)/$(notdir $@)
75 $(_v)mkdir -p $(SYMROOT)
76 $(_v)$(MAKE) -C $(SRCROOT)/$(notdir $@) SRCROOT=$(SRCROOT)/$(notdir $@) DSTROOT=$@ OBJROOT=$(OBJROOT)/$(notdir $@) SDKROOT=$(SDKROOT) BASEDSTROOT=$(DSTROOT) BASEDSTSUBPATH=$(DSTSUBPATH)