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