xref: /haiku/src/kits/network/libnetapi/Jamfile (revision 5e7964b0a929555415798dea3373db9ac4611caa)
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 compat ]
7	: true ;
8UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ;
9UseHeaders [ FDirName $(HAIKU_TOP) headers os add-ons network_settings ]
10	: true ;
11
12SubDirC++Flags [ FDefines _BSD_SOURCE=1 ] ;
13
14local architectureObject ;
15for architectureObject in [ MultiArchSubDirSetup ] {
16	on $(architectureObject) {
17		local sslSources ;
18		local md5Sources ;
19
20		UsePrivateSystemHeaders ;
21
22		if [ FIsBuildFeatureEnabled openssl ] {
23			SubDirC++Flags -DOPENSSL_ENABLED ;
24			UseBuildFeatureHeaders openssl ;
25			sslSources = SSL.cpp ;
26			md5Sources = ;
27			Includes [ FGristFiles $(sslSources) SecureSocket.cpp
28					HttpAuthentication.cpp Certificate.cpp ]
29				: [ BuildFeatureAttribute openssl : headers ] ;
30				# Dependency needed to trigger downloading/unzipping the package
31				# before compiling the files.
32			SetupFeatureObjectsDir ssl ;
33		} else {
34			# As we don't have md5 from ssl, use our own
35			md5Sources = md5.c ;
36			SetupFeatureObjectsDir no-ssl ;
37		}
38
39		SharedLibrary [ MultiArchDefaultGristFiles libbnetapi.so ] :
40			init.cpp
41			DynamicBuffer.cpp
42			NetEndpoint.cpp
43			NetAddress.cpp
44			NetBuffer.cpp
45			NetDebug.cpp
46
47			$(sslSources)
48			Certificate.cpp
49
50			NetworkAddress.cpp
51			NetworkAddressResolver.cpp
52			NetworkCookie.cpp
53			NetworkCookieJar.cpp
54			NetworkDevice.cpp
55			NetworkInterface.cpp
56			NetworkRoster.cpp
57			NetworkRoute.cpp
58			NetworkSettings.cpp
59
60			AbstractSocket.cpp
61			DatagramSocket.cpp
62			ProxySecureSocket.cpp
63			SecureSocket.cpp
64			Socket.cpp
65			SocketMessenger.cpp
66
67			# TODO: another add-on for file:// (a much simpler one)
68			FileRequest.cpp
69
70			# TODO: another add-on for gopher://
71			GopherRequest.cpp
72
73			# TODO: The HTTP stuff should all go into an add-on. It needs
74			# linking against libcrypto.so and only the add-on should link
75			# against it.
76			DataRequest.cpp
77			HttpAuthentication.cpp
78			HttpHeaders.cpp
79			HttpForm.cpp
80			HttpRequest.cpp
81			HttpResult.cpp
82			HttpTime.cpp
83
84			notifications.cpp
85
86			$(md5Sources)
87
88			NetworkRequest.cpp
89			UrlContext.cpp
90			UrlProtocolAsynchronousListener.cpp
91			UrlProtocolDispatchingListener.cpp
92			UrlProtocolListener.cpp
93			UrlProtocolRoster.cpp
94			UrlRequest.cpp
95			UrlResult.cpp
96			UrlSynchronousRequest.cpp
97
98			:
99			be shared $(TARGET_NETWORK_LIBS) [ TargetLibstdc++ ]
100			[ TargetLibsupc++ ] [ BuildFeatureAttribute openssl : libraries ]
101			[ BuildFeatureAttribute icu : libraries ]
102			;
103	}
104}
105