⛏️ index : haiku.git

SubDir HAIKU_TOP src kits network libnetapi ;

UsePrivateHeaders app net shared storage support ;
UsePrivateHeaders locale shared ;

UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network ] : true ;
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ;
UseHeaders [ FDirName $(HAIKU_TOP) headers os add-ons network_settings ]
	: true ;

local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
	on $(architectureObject) {
		local architecture = $(TARGET_PACKAGING_ARCH) ;
		local sslSources ;

		UsePrivateSystemHeaders ;

		if [ FIsBuildFeatureEnabled openssl ] {
			SubDirC++Flags -DOPENSSL_ENABLED ;
			UseBuildFeatureHeaders openssl ;
			sslSources = SSL.cpp ;
			Includes [ FGristFiles $(sslSources) SecureSocket.cpp
					HttpAuthentication.cpp Certificate.cpp ]
				: [ BuildFeatureAttribute openssl : headers ] ;
				# Dependency needed to trigger downloading/unzipping the package
				# before compiling the files.
			SetupFeatureObjectsDir ssl ;
		} else {
			SetupFeatureObjectsDir no-ssl ;
		}

		SharedLibrary [ MultiArchDefaultGristFiles libbnetapi.so ] :
			DynamicBuffer.cpp
			NetEndpoint.cpp
			NetAddress.cpp
			NetBuffer.cpp
			NetDebug.cpp

			$(sslSources)
			Certificate.cpp

			NetworkAddress.cpp
			NetworkAddressResolver.cpp
			NetworkDevice.cpp
			NetworkInterface.cpp
			NetworkRoster.cpp
			NetworkRoute.cpp
			NetworkSettings.cpp

			AbstractSocket.cpp
			DatagramSocket.cpp
			ProxySecureSocket.cpp
			SecureSocket.cpp
			Socket.cpp
			SocketMessenger.cpp

			notifications.cpp

			:
			be shared $(TARGET_NETWORK_LIBS) [ TargetLibstdc++ ]
			[ TargetLibsupc++ ] [ BuildFeatureAttribute openssl : libraries ]
			[ BuildFeatureAttribute icu : libraries ]
			;
	}
}