xref: /haiku/src/kits/network/libnetapi/Jamfile (revision 7d6915b4d08ffe728cd38af02843d5e98ddfe0db)
1SubDir HAIKU_TOP src kits network libnetapi ;
2
3UsePrivateHeaders app net shared 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 ;
9
10local architectureObject ;
11for architectureObject in [ MultiArchSubDirSetup ] {
12	on $(architectureObject) {
13		local sslSources ;
14		local md5Sources ;
15
16		UsePrivateSystemHeaders ;
17
18		if [ FIsBuildFeatureEnabled openssl ] {
19			SubDirC++Flags -DOPENSSL_ENABLED ;
20			UseBuildFeatureHeaders openssl ;
21			sslSources = SSL.cpp ;
22			md5Sources = ;
23			Includes [ FGristFiles $(sslSources) SecureSocket.cpp
24					HttpAuthentication.cpp Certificate.cpp ]
25				: [ BuildFeatureAttribute openssl : headers ] ;
26				# Dependency needed to trigger downloading/unzipping the package before
27				# compiling the files.
28			SetupFeatureObjectsDir ssl ;
29		} else {
30			# As we don't have md5 from ssl, use our own
31			md5Sources = md5.c ;
32			SetupFeatureObjectsDir no-ssl ;
33		}
34
35		# BUrl uses ICU to perform IDNA conversions (unicode domain names)
36		UseBuildFeatureHeaders icu ;
37		Includes [ FGristFiles Url.cpp ]
38			: [ BuildFeatureAttribute icu : headers ] ;
39
40		SharedLibrary [ MultiArchDefaultGristFiles libbnetapi.so ] :
41			init.cpp
42			DynamicBuffer.cpp
43			NetEndpoint.cpp
44			NetAddress.cpp
45			NetBuffer.cpp
46			NetDebug.cpp
47
48			$(sslSources)
49			Certificate.cpp
50
51			NetworkAddress.cpp
52			NetworkAddressResolver.cpp
53			NetworkCookie.cpp
54			NetworkCookieJar.cpp
55			NetworkDevice.cpp
56			NetworkInterface.cpp
57			NetworkRoster.cpp
58			RouteSupport.cpp
59
60			AbstractSocket.cpp
61			DatagramSocket.cpp
62			Socket.cpp
63			SecureSocket.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			getifaddrs.cpp
83			notifications.cpp
84
85			$(md5Sources)
86
87			NetworkRequest.cpp
88			Url.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 $(TARGET_NETWORK_LIBS) [ TargetLibstdc++ ] [ TargetLibsupc++ ]
100			[ BuildFeatureAttribute openssl : libraries ]
101			[ BuildFeatureAttribute icu : libraries ]
102			[ MultiArchDefaultGristFiles libshared.a ]
103			;
104	}
105}
106