xref: /haiku/src/kits/network/libnetapi/Jamfile (revision 1f0635d2277dcd0818dc7f539c1cb1b296f6444b)
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
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			DynamicBuffer.cpp
40			NetEndpoint.cpp
41			NetAddress.cpp
42			NetBuffer.cpp
43			NetDebug.cpp
44
45			$(sslSources)
46			Certificate.cpp
47
48			NetworkAddress.cpp
49			NetworkAddressResolver.cpp
50			NetworkCookie.cpp
51			NetworkCookieJar.cpp
52			NetworkDevice.cpp
53			NetworkInterface.cpp
54			NetworkRoster.cpp
55			NetworkRoute.cpp
56			NetworkSettings.cpp
57
58			AbstractSocket.cpp
59			DatagramSocket.cpp
60			ProxySecureSocket.cpp
61			SecureSocket.cpp
62			Socket.cpp
63			SocketMessenger.cpp
64
65			# TODO: another add-on for file:// (a much simpler one)
66			FileRequest.cpp
67
68			# TODO: another add-on for gopher://
69			GopherRequest.cpp
70
71			# TODO: The HTTP stuff should all go into an add-on. It needs
72			# linking against libcrypto.so and only the add-on should link
73			# against it.
74			DataRequest.cpp
75			HttpAuthentication.cpp
76			HttpHeaders.cpp
77			HttpForm.cpp
78			HttpRequest.cpp
79			HttpResult.cpp
80			HttpTime.cpp
81
82			notifications.cpp
83
84			$(md5Sources)
85
86			NetworkRequest.cpp
87			UrlContext.cpp
88			UrlProtocolAsynchronousListener.cpp
89			UrlProtocolDispatchingListener.cpp
90			UrlProtocolListener.cpp
91			UrlProtocolRoster.cpp
92			UrlRequest.cpp
93			UrlResult.cpp
94			UrlSynchronousRequest.cpp
95
96			:
97			be shared $(TARGET_NETWORK_LIBS) [ TargetLibstdc++ ]
98			[ TargetLibsupc++ ] [ BuildFeatureAttribute openssl : libraries ]
99			[ BuildFeatureAttribute icu : libraries ]
100			;
101	}
102}
103