lin
2025-08-14 dae8bad597b6607a449b32bf76c523423f7720ed
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
commonLibs = [
    "libcutils",
    "liblog",
]
 
cc_defaults {
    name: "mdnsresponder_default_cflags",
 
    cflags: [
        "-O2",
        "-g",
        "-fno-strict-aliasing",
        "-fwrapv",
        "-D_GNU_SOURCE",
        "-DHAVE_IPV6",
        "-DNOT_HAVE_SA_LEN",
        "-DPLATFORM_NO_RLIMIT",
        "-DMDNS_DEBUGMSGS=0",
        "-DMDNS_UDS_SERVERPATH=\"/dev/socket/mdnsd\"",
        "-DMDNS_USERNAME=\"mdnsr\"",
        "-W",
        "-Wall",
        "-Wextra",
        "-Wno-address-of-packed-member",
        "-Wno-array-bounds",
        "-Wno-pointer-sign",
        "-Wno-unused",
        "-Wno-unused-but-set-variable",
        "-Wno-unused-parameter",
        "-Werror=implicit-function-declaration",
    ],
    target: {
        linux: {
            cflags: [
                "-DTARGET_OS_LINUX",
                "-DHAVE_LINUX",
                "-DUSES_NETLINK",
                "-Werror",
            ],
        },
        darwin: {
            cflags: [
                "-DTARGET_OS_MAC",
                "-Wno-error",
            ],
        },
        windows: {
            enabled: true,
            cflags: [
                "-DTARGET_OS_WINDOWS",
                "-DWIN32",
                "-DNDEBUG",
                "-D_WIN32_LEAN_AND_MEAN",
                "-DUSE_TCP_LOOPBACK",
                "-D_CRT_SECURE_NO_DEPRECATE",
                "-D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1",
                "-Wno-error",
                "-Wno-sign-compare",
                "-include stdint.h",
                "-include winsock2.h",
                "-include ws2ipdef.h",
                "-include wincrypt.h",
                "-include netioapi.h",
            ],
            local_include_dirs: [
                "mDNSWindows",
                "android/caseMapping",
            ],
        },
    },
}
 
cc_binary {
    name: "mdnsd",
    defaults: ["mdnsresponder_default_cflags"],
    host_supported: true,
    srcs: [
        "mDNSCore/mDNS.c",
        "mDNSCore/DNSDigest.c",
        "mDNSCore/uDNS.c",
        "mDNSCore/DNSCommon.c",
        "mDNSShared/uds_daemon.c",
        "mDNSShared/mDNSDebug.c",
        "mDNSShared/dnssd_ipc.c",
        "mDNSShared/GenLinkedList.c",
    ],
 
    local_include_dirs: [
        "mDNSCore",
        "mDNSShared",
    ],
    init_rc: ["mdnsd.rc"],
 
    cflags: ["-DMDNS_VERSIONSTR_NODTS=1"],
 
    target: {
        android: {
            static_executable: true,
            local_include_dirs: ["mDNSPosix"],
            srcs: [
                "mDNSShared/PlatformCommon.c",
                "mDNSPosix/PosixDaemon.c",
                "mDNSPosix/mDNSPosix.c",
                "mDNSPosix/mDNSUNP.c",
            ],
        },
        not_windows: {
            local_include_dirs: ["mDNSPosix"],
            srcs: [
                "mDNSShared/PlatformCommon.c",
                "mDNSPosix/PosixDaemon.c",
                "mDNSPosix/mDNSPosix.c",
                "mDNSPosix/mDNSUNP.c",
            ],
        },
        windows: {
            cflags: [
                "-DTARGET_OS_WIN32",
                "-D_CONSOLE",
                "-DPLATFORM_NO_STRSEP",
                "-DPLATFORM_NO_EPIPE",
                "-DPLATFORM_NO_RLIMIT",
                "-DPID_FILE=\"\"",
                "-DUNICODE",
                "-D_UNICODE",
                "-D_LEGACY_NAT_TRAVERSAL",
                "-Wno-empty-body",
            ],
 
            ldflags: ["-municode"],
            host_ldlibs: [
                "-lws2_32",
                "-liphlpapi",
                "-lpowrprof",
                "-lnetapi32",
            ],
 
            srcs: [
                "mDNSWindows/SystemService/main.c",
                "mDNSWindows/SystemService/Service.c",
                "mDNSWindows/SystemService/EventLog.mc",
                "mDNSWindows/Secret.c",
                "mDNSWindows/mDNSWin32.c",
                "mDNSShared/DebugServices.c",
                "android/windows_firewall_dummy.c",
            ],
 
            local_include_dirs: [
                "mDNSWindows/SystemService",
            ],
        },
    },
 
    static_libs: commonLibs,
}
 
//#########################
 
cc_library {
    name: "libmdnssd",
    defaults: ["mdnsresponder_default_cflags"],
    host_supported: true,
    recovery_available: true,
    srcs: [
        "mDNSShared/dnssd_clientlib.c",
        "mDNSShared/dnssd_clientstub.c",
        "mDNSShared/dnssd_ipc.c",
    ],
 
    target: {
        host: {
            shared: {
                enabled: false,
            },
        },
        windows: {
            srcs: ["mDNSWindows/DLL/dllmain.c"],
 
            cflags: [
                "-D_WINDOWS",
                "-D_USERDLL",
                "-D_MDNS_DEBUGMSGS=0",
                "-D_SSIZE_T",
                "-DNOT_HAVE_SA_LENGTH",
                "-Wno-unknown-pragmas",
                "-Wno-overflow",
                "-include iphlpapi.h",
                "-include stdlib.h",
                "-include stdio.h",
            ],
        },
    },
 
    export_include_dirs: ["mDNSShared"],
 
    static_libs: commonLibs,
}
 
//###########################
 
cc_binary {
    name: "dnssd",
    defaults: ["mdnsresponder_default_cflags"],
    srcs: [
        "Clients/dns-sd.c",
        "Clients/ClientCommon.c",
    ],
 
    system_shared_libs: ["libc", "libdl"],
    shared_libs: [
        "libmdnssd",
        "libcutils",
        "liblog",
    ],
}