xref: /haiku/src/kits/network/libnetapi/Jamfile (revision 18027fff34af4a666c1e62254b462cbaeae1859e)
1SubDir HAIKU_TOP src kits network libnetapi ;
2
3UsePrivateHeaders app net shared ;
4
5UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ]
6	: true ;
7UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ;
8
9local architectureObject ;
10for architectureObject in [ MultiArchSubDirSetup ] {
11	on $(architectureObject) {
12		UseBuildFeatureHeaders zlib ;
13
14		local sslSources ;
15		local md5Sources ;
16
17		Includes [ FGristFiles $(HPKG_SOURCES) ]
18			: [ BuildFeatureAttribute zlib : headers ] ;
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 before
31				# 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			RouteSupport.cpp
58
59			AbstractSocket.cpp
60			DatagramSocket.cpp
61			Socket.cpp
62			SecureSocket.cpp
63
64			# TODO: The HTTP stuff should all go into an add-on. It needs
65			# linking against libcrypto.so and only the add-on should link
66			# against it.
67			DataRequest.cpp
68			HttpAuthentication.cpp
69			HttpHeaders.cpp
70			HttpForm.cpp
71			HttpRequest.cpp
72			HttpResult.cpp
73			HttpTime.cpp
74
75			# TODO: another add-on for file:// (a much simpler one)
76			FileRequest.cpp
77
78			notifications.cpp
79
80			$(md5Sources)
81
82			Url.cpp
83			UrlContext.cpp
84			UrlProtocolAsynchronousListener.cpp
85			UrlProtocolDispatchingListener.cpp
86			UrlProtocolListener.cpp
87			UrlProtocolRoster.cpp
88			UrlRequest.cpp
89			UrlResult.cpp
90			UrlSynchronousRequest.cpp
91
92			:
93			be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++)
94			[ BuildFeatureAttribute openssl : libraries ]
95			[ BuildFeatureAttribute zlib : library ]
96			[ MultiArchDefaultGristFiles libshared.a ]
97			;
98	}
99}
100