# This module is built as an independent static library, and as a (deprecated)
# part of libnetapi.so. In the latter case LIBNETAPI_DEPRECATED will be defined
# to ensure binary compatibility.

UsePrivateHeaders net netservices shared support ;

local sources =
	# FUTURE: The HTTP stuff should all go into an add-on. It needs
	# linking against libcrypto.so and only the add-on should link
	# against it.
	DataRequest.cpp
	HttpAuthentication.cpp
	HttpHeaders.cpp
	HttpForm.cpp
	HttpRequest.cpp
	HttpResult.cpp

	# FUTURE: another add-on for file:// (a much simpler one)
	FileRequest.cpp

	# FUTURE: another add-on for gopher://
	GopherRequest.cpp

	HttpTime.cpp
	NetworkCookie.cpp
	NetworkCookieJar.cpp

	NetworkRequest.cpp
	UrlContext.cpp
	UrlProtocolAsynchronousListener.cpp
	UrlProtocolDispatchingListener.cpp
	UrlProtocolListener.cpp
	UrlProtocolRoster.cpp
	UrlRequest.cpp
	UrlSynchronousRequest.cpp
	;

if [ Glob $(SUBDIR) : DefaultGeolocationServiceKey.h ] {
	SubDirC++Flags [ FDefines HAVE_DEFAULT_GEOLOCATION_SERVICE_KEY ] ;
}

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

		if $(SUBDIR:B) = libnetapi_deprecated {
			SubDirC++Flags [ FDefines LIBNETAPI_DEPRECATED ] ;
			UseHeaders [ FDirName $(HAIKU_TOP) src kits network libnetservices ] : false ;

			MergeObject <libnetapi!$(architecture)>netservices.o :
				$(sources)
				UrlResult_Deprecated.cpp
				: <$(architecture)>libshared.a
				;
		} else {
			StaticLibrary [ MultiArchDefaultGristFiles libnetservices.a ] :
				$(sources)
				Geolocation.cpp
				UrlResult.cpp
				;
			LinkAgainst [ MultiArchDefaultGristFiles libnetservices.a ] :
				<$(architecture)>libshared.a ;
		}

		SEARCH on [ FGristFiles $(sources) ]
			= [ FDirName $(HAIKU_TOP) src kits network libnetservices ] ;
	}
}
