xref: /xnu-11215/tools/tests/Makefile (revision e6231be0)
1include Makefile.common
2
3ifndef SRCROOT
4export SRCROOT := $(shell /bin/pwd)
5endif
6ifndef OBJROOT
7export OBJROOT = $(SRCROOT)/BUILD/obj
8endif
9ifndef DSTROOT
10export DSTROOT = $(SRCROOT)/BUILD/dst
11endif
12ifndef SYMROOT
13export SYMROOT = $(SRCROOT)/BUILD/sym
14endif
15
16ifdef RC_ProjectName
17DSTSUBPATH = $(DSTROOT)/AppleInternal/CoreOS/tests/xnu
18BATS_CONFIG_PATH = $(DSTROOT)/AppleInternal/CoreOS
19else
20DSTSUBPATH = $(DSTROOT)
21BATS_CONFIG_PATH = $(DSTROOT)
22endif
23
24DSTSUBPATH_KEXTS = $(DSTROOT)/System/AppleInternal/Library/AuxiliaryExtensions
25
26COMMON_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
38KEXT_TARGETS = pgokext.kext
39
40IPHONE_TARGETS =
41
42MAC_TARGETS =
43
44BATS_TARGET = $(BATS_CONFIG_PATH)/BATS
45
46ifeq "$(Embedded)" "YES"
47TARGETS =	$(addprefix $(DSTSUBPATH)/, $(COMMON_TARGETS) $(IPHONE_TARGETS)) $(addprefix $(DSTSUBPATH_KEXTS)/, $(KEXT_TARGETS))
48else
49TARGETS =	$(addprefix $(DSTSUBPATH)/, $(COMMON_TARGETS) $(MAC_TARGETS)) $(addprefix $(DSTSUBPATH_KEXTS)/, $(KEXT_TARGETS))
50endif
51
52all:	$(BATS_TARGET) $(TARGETS)
53
54.PHONY: always
55
56always:
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)
77