1SubDir HAIKU_TOP src kits network libnetapi ;
2
3UsePrivateHeaders app net shared storage support ;
4UsePrivateHeaders locale shared ;
5
6UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network ] : true ;
7UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ;
8UseHeaders [ FDirName $(HAIKU_TOP) headers os add-ons network_settings ]
9	: true ;
10
11local architectureObject ;
12for architectureObject in [ MultiArchSubDirSetup ] {
13	on $(architectureObject) {
14		local architecture = $(TARGET_PACKAGING_ARCH) ;
15		local sslSources ;
16
17		UsePrivateSystemHeaders ;
18
19		if [ FIsBuildFeatureEnabled openssl ] {
20			SubDirC++Flags -DOPENSSL_ENABLED -DOPENSSL_API_COMPAT=10101 -DOPENSSL_NO_DEPRECATED=1 ;
21			UseBuildFeatureHeaders openssl ;
22			sslSources = SSL.cpp ;
23			Includes [ FGristFiles $(sslSources) SecureSocket.cpp
24					HttpAuthentication.cpp Certificate.cpp ]
25				: [ BuildFeatureAttribute openssl : headers ] ;
26				# Dependency needed to trigger downloading/unzipping the package
27				# before compiling the files.
28			SetupFeatureObjectsDir ssl ;
29		} else {
30			SetupFeatureObjectsDir no-ssl ;
31		}
32
33		SharedLibrary [ MultiArchDefaultGristFiles libbnetapi.so ] :
34			DynamicBuffer.cpp
35			NetEndpoint.cpp
36			NetAddress.cpp
37			NetBuffer.cpp
38			NetDebug.cpp
39
40			$(sslSources)
41			Certificate.cpp
42
43			NetworkAddress.cpp
44			NetworkAddressResolver.cpp
45			NetworkDevice.cpp
46			NetworkInterface.cpp
47			NetworkRoster.cpp
48			NetworkRoute.cpp
49			NetworkSettings.cpp
50
51			AbstractSocket.cpp
52			DatagramSocket.cpp
53			ProxySecureSocket.cpp
54			SecureSocket.cpp
55			Socket.cpp
56			SocketMessenger.cpp
57
58			notifications.cpp
59
60			:
61			be shared $(TARGET_NETWORK_LIBS) [ TargetLibstdc++ ]
62			[ TargetLibsupc++ ] [ BuildFeatureAttribute openssl : libraries ]
63			[ BuildFeatureAttribute icu : libraries ]
64			;
65	}
66}
67