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