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