]>
Commit | Line | Data |
---|---|---|
c9b9ae52 | 1 | # |
f0cc3e7b A |
2 | # Copyright (c) 2003-2018 Apple Inc. All rights reserved. |
3 | # | |
4 | # Top level makefile for Build & Integration (B&I). | |
c9b9ae52 | 5 | # |
f0cc3e7b | 6 | # This file is used to facilitate checking the mDNSResponder project directly from git and submitting to B&I at Apple. |
c9b9ae52 | 7 | # |
f0cc3e7b | 8 | # The various platform directories contain makefiles or projects specific to that platform. |
c9b9ae52 A |
9 | # |
10 | # B&I builds must respect the following target: | |
11 | # install: | |
12 | # installsrc: | |
13 | # installhdrs: | |
2682e09e | 14 | # installapi: |
c9b9ae52 A |
15 | # clean: |
16 | # | |
17 | ||
83fb1e36 | 18 | include $(MAKEFILEPATH)/pb_makefiles/platform.make |
c9b9ae52 | 19 | |
19fa75a9 | 20 | MVERS = "mDNSResponder-1310.40.42" |
67c8f8a1 | 21 | |
12c5fa7a | 22 | VER = |
83fb1e36 A |
23 | ifneq ($(strip $(GCC_VERSION)),) |
24 | VER = -- GCC_VERSION=$(GCC_VERSION) | |
25 | endif | |
26 | echo "VER = $(VER)" | |
67c8f8a1 | 27 | |
f0cc3e7b A |
28 | projectdir := $(SRCROOT)/mDNSMacOSX |
29 | buildsettings := OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) DSTROOT=$(DSTROOT) MVERS=$(MVERS) SDKROOT=$(SDKROOT) | |
30 | ||
31 | .PHONY: install installSome installEmpty installExtras SystemLibraries installhdrs installapi installsrc java clean | |
32 | ||
19fa75a9 A |
33 | # Sanitizer support |
34 | # Disable Sanitizer instrumentation in LibSystem contributors. See rdar://problem/29952210. | |
35 | UNSUPPORTED_SANITIZER_PROJECTS := mDNSResponderSystemLibraries mDNSResponderSystemLibraries_Sim | |
36 | PROJECT_SUPPORTS_SANITIZERS := 1 | |
37 | ifneq ($(words $(filter $(UNSUPPORTED_SANITIZER_PROJECTS), $(RC_ProjectName))), 0) | |
38 | PROJECT_SUPPORTS_SANITIZERS := 0 | |
39 | endif | |
40 | ifeq ($(RC_ENABLE_ADDRESS_SANITIZATION),1) | |
41 | ifeq ($(PROJECT_SUPPORTS_SANITIZERS),1) | |
42 | $(info Enabling Address Sanitizer) | |
43 | buildsettings += -enableAddressSanitizer YES | |
44 | else | |
45 | $(warning WARNING: Address Sanitizer not supported for project $(RC_ProjectName)) | |
46 | endif | |
47 | endif | |
48 | ifeq ($(RC_ENABLE_THREAD_SANITIZATION),1) | |
49 | ifeq ($(PROJECT_SUPPORTS_SANITIZERS),1) | |
50 | $(info Enabling Thread Sanitizer) | |
51 | buildsettings += -enableThreadSanitizer YES | |
52 | else | |
53 | $(warning WARNING: Thread Sanitizer not supported for project $(RC_ProjectName)) | |
54 | endif | |
55 | endif | |
56 | ifeq ($(RC_ENABLE_UNDEFINED_BEHAVIOR_SANITIZATION),1) | |
57 | ifeq ($(PROJECT_SUPPORTS_SANITIZERS),1) | |
58 | $(info Enabling Undefined Behavior Sanitizer) | |
59 | buildsettings += -enableUndefinedBehaviorSanitizer YES | |
60 | else | |
61 | $(warning WARNING: Undefined Behavior Sanitizer not supported for project $(RC_ProjectName)) | |
62 | endif | |
63 | endif | |
64 | ||
f0cc3e7b A |
65 | # B&I install build targets |
66 | # | |
67 | # For the mDNSResponder build alias, the make target used by B&I depends on the platform: | |
68 | # | |
69 | # Platform Make Target | |
70 | # -------- ----------- | |
71 | # osx install | |
72 | # ios installSome | |
73 | # atv installSome | |
74 | # watch installSome | |
75 | # | |
76 | # For the mDNSResponderSystemLibraries and mDNSResponderSystemLibraries_sim build aliases, B&I uses the SystemLibraries | |
77 | # target for all platforms. | |
78 | ||
79 | install: | |
80 | ifeq ($(RC_ProjectName), mDNSResponderServices) | |
19fa75a9 A |
81 | ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx) |
82 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Services-macOS' $(VER) | |
83 | else | |
f0cc3e7b | 84 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Services' $(VER) |
19fa75a9 A |
85 | endif |
86 | else ifeq ($(RC_ProjectName), mDNSResponderServices_Sim) | |
87 | mkdir -p $(DSTROOT)/AppleInternal | |
f0cc3e7b A |
88 | else |
89 | cd '$(projectdir)'; xcodebuild install $(buildsettings) $(VER) | |
90 | endif | |
91 | ||
67c8f8a1 | 92 | installSome: |
f0cc3e7b | 93 | cd '$(projectdir)'; xcodebuild install $(buildsettings) $(VER) |
67c8f8a1 | 94 | |
f0cc3e7b A |
95 | installEmpty: |
96 | mkdir -p $(DSTROOT)/AppleInternal | |
c9b9ae52 | 97 | |
f0cc3e7b A |
98 | installExtras: |
99 | ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx) | |
100 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras-macOS' $(VER) | |
101 | else ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), ios) | |
102 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras-iOS' $(VER) | |
19fa75a9 A |
103 | else ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), atv) |
104 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras-tvOS' $(VER) | |
f0cc3e7b A |
105 | else |
106 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras' $(VER) | |
107 | endif | |
c9b9ae52 | 108 | |
f0cc3e7b A |
109 | SystemLibraries: |
110 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target SystemLibraries $(VER) | |
111 | ||
112 | # B&I installhdrs build targets | |
c9b9ae52 A |
113 | |
114 | installhdrs:: | |
f0cc3e7b | 115 | ifeq ($(RC_ProjectName), mDNSResponderServices) |
19fa75a9 A |
116 | ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx) |
117 | cd '$(projectdir)'; xcodebuild installhdrs $(buildsettings) -target 'Build Services-macOS' $(VER) | |
118 | else | |
f0cc3e7b | 119 | cd '$(projectdir)'; xcodebuild installhdrs $(buildsettings) -target 'Build Services' $(VER) |
19fa75a9 A |
120 | endif |
121 | else ifeq ($(RC_ProjectName), mDNSResponderServices_Sim) | |
122 | mkdir -p $(DSTROOT)/AppleInternal | |
f0cc3e7b A |
123 | else ifneq ($(findstring SystemLibraries,$(RC_ProjectName)),) |
124 | cd '$(projectdir)'; xcodebuild installhdrs $(buildsettings) -target SystemLibraries $(VER) | |
125 | endif | |
126 | ||
127 | # B&I installapi build targets | |
c9b9ae52 | 128 | |
2682e09e | 129 | installapi: |
f0cc3e7b | 130 | ifeq ($(RC_ProjectName), mDNSResponderServices) |
19fa75a9 A |
131 | ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx) |
132 | cd '$(projectdir)'; xcodebuild installapi $(buildsettings) -target 'Build Services-macOS' $(VER) | |
133 | else | |
f0cc3e7b | 134 | cd '$(projectdir)'; xcodebuild installapi $(buildsettings) -target 'Build Services' $(VER) |
19fa75a9 A |
135 | endif |
136 | else ifeq ($(RC_ProjectName), mDNSResponderServices_Sim) | |
137 | mkdir -p $(DSTROOT)/AppleInternal | |
f0cc3e7b A |
138 | else ifneq ($(findstring SystemLibraries,$(RC_ProjectName)),) |
139 | cd '$(projectdir)'; xcodebuild installapi $(buildsettings) -target SystemLibrariesDynamic $(VER) | |
140 | endif | |
141 | ||
142 | # Misc. targets | |
143 | ||
144 | installsrc: | |
145 | ditto . '$(SRCROOT)' | |
146 | rm -rf '$(SRCROOT)/mDNSWindows' '$(SRCROOT)/Clients/FirefoxExtension' | |
2682e09e | 147 | |
51601d48 | 148 | java: |
f0cc3e7b | 149 | cd '$(projectdir)'; xcodebuild install $(buildsettings) -target libjdns_sd.jnilib $(VER) |
51601d48 | 150 | |
c9b9ae52 A |
151 | clean:: |
152 | echo clean |