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