Imported Upstream version 878.70.2
[platform/upstream/mdnsresponder.git] / mDNSMacOSX / mDNSResponder-xcodeproj-explanation.txt
1 The mDNSResponder project has three umbrella targets:
2 Build Some
3 Build More
4 Build All
5
6 The “Build Some” target builds:
7 mDNSResponder
8 mDNSResponderHelper
9 dns-sd tool
10 dnsctl
11 mDNSNetMonitor
12 dns_services
13 BonjourEvents
14
15 The “Build More” target builds all of “Build Some”, plus
16 dnsextd
17 ddnswriteconfig
18 PreferencePane
19
20 The “Build All” target builds all of “Build More” (including “Build Some”) plus
21 SystemLibraries
22
23 Now, the explanation for this three-layer hierarchy:
24
25 The “Build More” is the *first* target in the Xcode project.
26 This is what B&I builds by default.
27 Why not “Build All”? Because SystemLibraries is special.
28 B&I builds the project in two passes. B&I builds SystemLibraries first, to
29 make LibSystem. Then B&I builds builds the rest. The default target needs to
30 be everything *except* SystemLibraries — i.e. the “Build More” target.
31
32 The “Build Some” target builds the subset of “Build More”
33 that is useful in routine day-to-day development.
34 Since dnsextd, ddnswriteconfig and the PreferencePane aren’t usually
35 what we’re working on, it’s quicker not to rebuild them every time.
36
37 The “Build All” target is the final one. It builds absolutely everything.
38 B&I never builds this (they do the two-pass build) but it’s there so that
39 after making changes, but before checking them in, we can quickly and
40 easily do a “Build All” and make sure our changes haven’t broken anything.