SubDir HAIKU_TOP src kits opengl ;

SetSubDirSupportedPlatformsBeOSCompatible ;

UsePrivateHeaders interface ;
UsePrivateSystemHeaders ;

local sources =
	GLView.cpp
	GLDispatcher.cpp
	GLRenderer.cpp
	GLRendererRoster.cpp
	;


if $(TARGET_PLATFORM) != haiku {
	UseHeaders [ FDirName $(HAIKU_TOP) headers os opengl ] : true ;
		# We need our public GL headers also when not compiling for Haiku.
}


SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;

UseHeaders [ FDirName $(HAIKU_MESA_DIR) include ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa main ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi glapi ] ;

# For older versions of Mesa
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa glapi ] ;

LINKFLAGS on libGL.so = [ on libGL.so return $(LINKFLAGS) ]
	-Xlinker --whole-archive -Xlinker --no-undefined ;

# For GCC2
if $(HAIKU_GCC_VERSION[1]) < 3 {
	SubDirC++Flags --no-warnings ;
}


SharedLibrary libGL.so : $(sources) :
	# Glut
	<opengl>glut.o

	# Mesa libraries (from Mesa optional package):
	$(HAIKU_MESA_LIBS)

	# External libraries:
	game			# BWindowScreen needed by BGLScreen stub class
	network
	be
	$(TARGET_LIBSTDC++)
;
