1ARCHS  = -arch i386 -arch x86_64
2CFLAGS = -Wall -pipe -O0 -gdwarf-2
3
4REACH_SERVER_C = ../../SystemConfiguration.fproj/reachability/SCNetworkReachabilityServer_server.c
5
6REACH_SERVER_PLIST = /Library/LaunchDaemons/com.apple.SCNetworkReachability.plist
7SYMROOT            = ${shell basename ${shell dirname ${shell dirname ${PWD}}}}
8
9all: /var/tmp/reach_server ${REACH_SERVER_PLIST}
10
11${REACH_SERVER_PLIST}: Makefile
12	@sudo mkdir -p ${shell dirname ${REACH_SERVER_PLIST}}
13	@sudo launchctl unload -w ${REACH_SERVER_PLIST}				> /dev/null 2>&1 || /usr/bin/true
14	@sudo rm -f ${REACH_SERVER_PLIST}
15	@sudo defaults write ${REACH_SERVER_PLIST} Label			\
16			SCNetworkReachability-DEBUG
17	@sudo defaults write ${REACH_SERVER_PLIST} MachServices			\
18		-dict								\
19			SCNetworkReachability-DEBUG				\
20				-bool TRUE
21	@sudo defaults write ${REACH_SERVER_PLIST} Program			\
22			/var/tmp/reach_server
23	@sudo defaults write ${REACH_SERVER_PLIST} ProgramArguments		\
24		-array								\
25			SCNetworkReachability-DEBUG				\
26			verbose
27	@sudo defaults write ${REACH_SERVER_PLIST} EnvironmentVariables		\
28		-dict								\
29			DYLD_FRAMEWORK_PATH					\
30				${BUILDIT_DIR}/${SYMROOT}.roots/${SYMROOT}~sym	\
31			REACH_SERVER						\
32				SCNetworkReachability-DEBUG
33	@sudo defaults write ${REACH_SERVER_PLIST} ThrottleInterval		\
34			-int 5
35	@sudo chown root:wheel ${REACH_SERVER_PLIST}
36	@sudo chmod 644 ${REACH_SERVER_PLIST}
37	sudo launchctl load -w ${REACH_SERVER_PLIST}
38
39reach_server.o: ${REACH_SERVER_C}
40	cc ${ARCHS} ${CFLAGS} -DMAIN -I ../../SystemConfiguration.fproj -F ${BUILDIT_DIR}/${SYMROOT}.roots/${SYMROOT}~sym -c -o reach_server.o ${REACH_SERVER_C}
41
42reach_server: reach_server.o
43	cc ${ARCHS} -o reach_server reach_server.o -framework CoreFoundation -F ${BUILDIT_DIR}/${SYMROOT}.roots/${SYMROOT}~sym -framework SystemConfiguration
44	dsymutil reach_server -o reach_server.dSYM
45
46/var/tmp/reach_server: reach_server
47	@sudo rm -f /var/tmp/reach_server
48	cp -p reach_server /var/tmp/reach_server
49	@sudo chown root:wheel /var/tmp/reach_server
50	@sudo chmod 755 /var/tmp/reach_server
51
52clean:
53	sudo launchctl unload -w ${REACH_SERVER_PLIST}				> /dev/null 2>&1 || /usr/bin/true
54	@sudo rm -f ${REACH_SERVER_PLIST}
55	@sudo rm -rf /var/tmp/reach_server
56	rm -rf *.o reach_server reach_server.dSYM
57