Update glu and mesa package

Also use the new build feature rules.
This commit is contained in:
Ingo Weinhold 2013-06-13 18:46:34 +02:00
parent 178da21ad1
commit e97e4b74a0
21 changed files with 198 additions and 161 deletions
build/jam
src
add-ons
opengl
swpipe
swrast
swrast_legacy
screen_savers
flurry
glife
gravity
apps
3dmov
glteapot
haiku3d
kits/opengl
libs/glut
tests/kits/opengl
demos/gears
direct_mode
glinfo
glsl
glut/game_mode

@ -264,21 +264,24 @@ if $(TARGET_ARCH) = x86 {
# GLU (GL Utilities)
if $(TARGET_ARCH) = x86 {
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_GLU_FILE = glu-9.0-x86-gcc4-2012-11-13.zip ;
# TODO:...
HAIKU_GLU_PACKAGE = glu-9.0-x86-gcc4-2012-11-13.zip ;
} else {
HAIKU_GLU_FILE = glu-9.0-x86-gcc2-2012-11-13.zip ;
HAIKU_GLU_PACKAGE = glu-9.0.0-1-x86_gcc2.hpkg ;
HAIKU_GLU_DEVEL_PACKAGE = glu_devel-9.0.0-1-x86_gcc2.hpkg ;
}
local zipFile = [ DownloadFile $(HAIKU_GLU_FILE)
: $(baseURL)/lib/$(HAIKU_GLU_FILE) ] ;
HAIKU_GLU_URL = $(hpkgBaseURL)/$(HAIKU_GLU_PACKAGE) ;
HAIKU_GLU_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE) ;
HAIKU_GLU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_GLU_FILE:B) ] ;
HAIKU_GLU_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_GLU_DIR)
: develop/headers/os/opengl/GL : $(zipFile) : extracted-glu-headers ] ;
HAIKU_GLU_LIBS = [ ExtractArchive $(HAIKU_GLU_DIR)
: system/lib/libGLU.a : $(zipFile) : extracted-glu ] ;
HAIKU_GLU_HEADERS = [ FDirName $(HAIKU_GLU_DIR) develop headers os opengl ] ;
ExtractBuildFeatureArchives glu :
file: base $(HAIKU_GLU_URL)
runtime: lib
file: devel $(HAIKU_GLU_DEVEL_URL)
depends: base
library: develop/lib/libGLU.so
headers: develop/headers
;
EnableBuildFeatures glu ;
} else {
@ -290,64 +293,37 @@ if $(TARGET_ARCH) = x86 {
if $(TARGET_ARCH) = x86 {
local zipFile ;
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_MESA_FILE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ;
# TODO:...
HAIKU_MESA_PACKAGE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ;
} else {
HAIKU_MESA_FILE = mesa-7.8.2-x86-gcc2-2013-04-28.zip ;
HAIKU_MESA_PACKAGE = mesa-7.8.2-3-x86_gcc2.hpkg ;
HAIKU_MESA_DEVEL_PACKAGE = mesa_devel-7.8.2-3-x86_gcc2.hpkg ;
}
zipFile = [ DownloadFile $(HAIKU_MESA_FILE)
: $(baseURL)/$(HAIKU_MESA_FILE) ] ;
HAIKU_MESA_URL = $(hpkgBaseURL)/$(HAIKU_MESA_PACKAGE) ;
HAIKU_MESA_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_MESA_DEVEL_PACKAGE) ;
HAIKU_MESA_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR)
$(HAIKU_MESA_FILE:B) ] ;
ExtractBuildFeatureArchives mesa : [ FFilterByBuildFeatures
file: devel $(HAIKU_MESA_DEVEL_URL)
mesaLibrary: develop/lib/libmesa.a
glapiLibrary: develop/lib/libglapi.a
headers: develop/headers
privateHeaders: develop/headers/mesa_private
HAIKU_MESA_HEADERS = [ FDirName $(HAIKU_MESA_DIR) include ] ;
HAIKU_MESA_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_MESA_DIR)
: include/ : $(zipFile) : extracted-mesa ] ;
!gcc2 @{
glslLibrary: develop/lib/libglsl.a
galliumLibrary: develop/lib/libgallium.a
llvm @{
galliumLlvmpipeLibrary: develop/lib/libllvmpipe.a
}@
!llvm @{
galliumSoftpipeLibrary: develop/lib/libsoftpipe.a
}@
}@ # !gcc2
] ;
# Base Mesa libraries
HAIKU_MESA_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libmesa.a
: $(zipFile)
: extracted-mesa ] ;
HAIKU_GLAPI_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libglapi.a
: $(zipFile)
: extracted-mesa ] ;
Depends $(HAIKU_MESA_HEADERS_DEPENDENCY) : $(HAIKU_GLU_HEADERS_DEPENDENCY) ;
Depends $(HAIKU_GLAPI_LIBS) : $(HAIKU_GLU_LIBS) ;
# Extended Mesa libraries for newer versions
if $(HAIKU_GCC_VERSION[1]) >= 4 {
HAIKU_GLSL_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libglsl.a
: $(zipFile)
: extracted-mesa ] ;
HAIKU_GALLIUM_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libgallium.a
: $(zipFile)
: extracted-mesa ] ;
if FIsBuildFeatureEnabled(llvm) {
HAIKU_GALLIUM_LLVMPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libllvmpipe.a
: $(zipFile)
: extracted-mesa ] ;
Depends $(HAIKU_GALLIUM_LLVMPIPE_LIB) : $(HAIKU_LLVM_LIBS) ;
} else {
HAIKU_GALLIUM_SOFTPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR)
:
lib.haiku/libsoftpipe.a
: $(zipFile)
: extracted-mesa ] ;
}
}
Depends [ BuildFeatureAttribute mesa : galliumLlvmpipeLibrary ]
: $(HAIKU_LLVM_LIBS) ;
EnableBuildFeatures mesa ;
} else {

@ -11,7 +11,8 @@ OptionalPackageDependencies Caya : Expat ;
OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ;
OptionalPackageDependencies Curl : OpenSSL ;
OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ;
OptionalPackageDependencies Development : DevelopmentBase Perl Zlib-devel ;
OptionalPackageDependencies Development
: DevelopmentBase GLU-devel Perl Zlib-devel ;
OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ;
OptionalPackageDependencies GetText : GetTextLibintl ;
OptionalPackageDependencies GetTextLibintl : LibIconv ;
@ -45,4 +46,4 @@ OptionalPackageDependencies XZ-Utils : Tar ;
OptionalPackageDependencies Zlib-devel : Zlib ;
OptionalPackageDependencies MandatoryPackages
: Bzip Ctags Grep ICU LibSolv Sed Tar Zlib ;
: Bzip Ctags GLU Grep ICU LibSolv Mesa Sed Tar Zlib ;

@ -49,6 +49,8 @@
# GetTextLibintl - GetText's libintl
# Git - the distributed version control system
# GitDoc - documentation for the distributed version control system
# GLU - OpenGL Utilities
# GLU-devel - GLU development files
# GPerf - the perfect hash function generator.
# Grep - program to search for strings inside a file
# Groff - text formatter used for man pages
@ -959,6 +961,30 @@ if [ IsOptionalHaikuImagePackageAdded GitDoc ] {
}
# GLU
if [ IsOptionalHaikuImagePackageAdded GLU ] {
if $(TARGET_ARCH) = x86 {
InstallOptionalHaikuImagePackage
$(hpkgBaseURL)/$(HAIKU_GLU_URL)
: system ;
} else {
Echo "No optional package GLU available for $(TARGET_ARCH)" ;
}
}
# GLU-devel
if [ IsOptionalHaikuImagePackageAdded GLU-devel ] {
if $(TARGET_ARCH) = x86 {
InstallOptionalHaikuImagePackage
$(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE)
: system ;
} else {
Echo "No optional package GLU-devel available for $(TARGET_ARCH)" ;
}
}
# GPerf
if [ IsOptionalHaikuImagePackageAdded GPerf ] {
if $(TARGET_ARCH) = x86 {
@ -1294,6 +1320,16 @@ if [ IsOptionalHaikuImagePackageAdded Mercurial ] {
}
# Mesa
if [ IsOptionalHaikuImagePackageAdded Mesa ] {
if $(TARGET_ARCH) = x86 {
InstallOptionalHaikuImagePackage $(HAIKU_MESA_URL) : system ;
} else {
Echo "No optional package Mesa available for $(TARGET_ARCH)" ;
}
}
# Nano
if [ IsOptionalHaikuImagePackageAdded Nano ] {
if $(TARGET_ARCH) = x86 {

@ -97,20 +97,9 @@ if $(HAIKU_GCC_VERSION[1]) = 2 {
}
# libGL.so has GLU (like BeOS) built-in
SYSTEM_LIBS_LIBGL_ALIASES = libGLU.so ;
if $(TARGET_ARCH) = x86 {
local lib ;
for lib in $(SYSTEM_LIBS_LIBGL_ALIASES) {
AddSymlinkToPackage lib : libGL.so : $(lib) ;
}
}
SYSTEM_LIBS_ALIASES =
$(SYSTEM_LIBS_LIBNETWORK_ALIASES)
libnetapi.so
$(SYSTEM_LIBS_LIBGL_ALIASES)
;
OPTIONAL_LIBS_ALIASES =

@ -22,7 +22,7 @@ AddFilesToPackage lib : $(developmentLibs) ;
# library symlinks
local lib ;
for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) {
for lib in $(SYSTEM_LIBS) $(developmentLibs) {
AddSymlinkToPackage $(developDirTokens) lib : /system/lib $(lib:BS) ;
local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ;
if $(abiVersion) {
@ -88,13 +88,13 @@ if $(HAIKU_GCC_VERSION[1]) = 2 {
# OpenGL headers
if $(TARGET_ARCH) = x86 {
local mesaGlHeaders = [ FDirName $(HAIKU_MESA_HEADERS) GL ] ;
mesaGlHeaders = $(mesaGlHeaders:G=$(HAIKU_MESA_HEADERS_DEPENDENCY:G)) ;
Depends $(mesaGlHeaders) : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
local mesaGlHeaders
= [ FDirName [ BuildFeatureAttribute mesa : headers : path ] GL ] ;
local mesaGlHeadersDependency = [ BuildFeatureAttribute mesa : headers ] ;
mesaGlHeaders = $(mesaGlHeaders:G=$(mesaGlHeadersDependency:G)) ;
Depends $(mesaGlHeaders) : $(mesaGlHeadersDependency) ;
CopyDirectoryToPackage $(developDirTokens) headers os opengl
: $(mesaGlHeaders) : : : isTarget ;
CopyDirectoryToPackage $(developDirTokens) headers os opengl
: $(HAIKU_GLU_HEADERS_DEPENDENCY) : : : isTarget ;
}
BuildHaikuPackage $(haikuDevelPackage) : haiku_devel ;

@ -1,5 +1,5 @@
SubDir HAIKU_TOP src add-ons opengl swpipe ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders mesa ;
UsePrivateHeaders interface ;
@ -10,13 +10,14 @@ local sources =
GalliumFramebuffer.cpp
bitmap_wrapper.cpp ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium auxiliary ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium drivers ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium include ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ;
local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
UseHeaders [ FDirName $(privateHeaders) gallium auxiliary ] ;
UseHeaders [ FDirName $(privateHeaders) gallium drivers ] ;
UseHeaders [ FDirName $(privateHeaders) gallium include ] ;
UseHeaders [ FDirName $(privateHeaders) mapi ] ;
UseHeaders [ FDirName $(privateHeaders) mesa ] ;
AddResources Software\ Renderer : SoftwareRenderer.rdef ;
@ -36,11 +37,11 @@ Addon Software\ Renderer :
$(sources)
:
libGL.so
$(HAIKU_GALLIUM_SOFTPIPE_LIB)
$(HAIKU_GALLIUM_LLVMPIPE_LIB)
$(HAIKU_MESA_LIB)
$(HAIKU_GLSL_LIB)
$(HAIKU_GALLIUM_LIB)
[ BuildFeatureAttribute mesa : galliumSoftpipeLibrary ]
[ BuildFeatureAttribute mesa : galliumLlvmpipeLibrary ]
[ BuildFeatureAttribute mesa : mesaLibrary ]
[ BuildFeatureAttribute mesa : glslLibrary ]
[ BuildFeatureAttribute mesa : galliumLibrary ]
$(HAIKU_LLVM_LIBS)
be translation stdc++ $(TARGET_LIBSUPC++)
;

@ -14,21 +14,22 @@ SubDirC++Flags [ FDefines $(defines) ] ;
local sources = MesaSoftwareRenderer.cpp ;
UsePrivateHeaders interface ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
UseBuildFeatureHeaders mesa ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
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 ] ;
UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ;
local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
UseHeaders [ FDirName $(privateHeaders) mesa ] ;
UseHeaders [ FDirName $(privateHeaders) mesa main ] ;
UseHeaders [ FDirName $(privateHeaders) mapi ] ;
UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ;
AddResources Software\ Rasterizer : MesaSoftwareRenderer.rdef ;
Addon Software\ Rasterizer :
MesaSoftwareRenderer.cpp
:
$(HAIKU_MESA_LIB)
$(HAIKU_GLSL_LIB)
[ BuildFeatureAttribute mesa : mesaLibrary ]
[ BuildFeatureAttribute mesa : glslLibrary ]
libGL.so be $(TARGET_LIBSUPC++)
;

@ -28,19 +28,20 @@ if $(TARGET_PLATFORM) != haiku {
local sources = MesaSoftwareRenderer.cpp ;
UsePrivateHeaders interface ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
UseBuildFeatureHeaders mesa ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
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 ] ;
UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ;
local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
UseHeaders [ FDirName $(privateHeaders) mesa ] ;
UseHeaders [ FDirName $(privateHeaders) mesa main ] ;
UseHeaders [ FDirName $(privateHeaders) mapi ] ;
UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ;
# For older versions of Mesa
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa glapi ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa tnl ] ;
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa x86 ] ;
UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ;
UseHeaders [ FDirName $(privateHeaders) mesa tnl ] ;
UseHeaders [ FDirName $(privateHeaders) mesa x86 ] ;
AddResources Legacy\ Software\ Rasterizer : MesaSoftwareRenderer.rdef ;
@ -48,6 +49,6 @@ AddResources Legacy\ Software\ Rasterizer : MesaSoftwareRenderer.rdef ;
Addon Legacy\ Software\ Rasterizer :
$(sources)
:
$(HAIKU_MESA_LIB)
[ BuildFeatureAttribute mesa : mesaLibrary ]
libGL.so be $(TARGET_LIBSUPC++)
;

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src add-ons screen_savers flurry ;
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
AddResources Message : Flurry.rdef ;
@ -12,13 +12,17 @@ local sources =
Texture.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
# Dependency needed to trigger downloading/unzipping the package before
# compiling the files.
ScreenSaver Flurry :
$(sources) :
be screensaver GL libshared.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
[ BuildFeatureAttribute glu : library ]
;
DoCatalogs Flurry :

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src add-ons screen_savers glife ;
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -14,7 +14,10 @@ local sources =
GLifeConfig.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
# Dependency needed to trigger downloading/unzipping the package before
# compiling the files.
@ -23,6 +26,7 @@ AddResources GLife : GLife.rdef ;
ScreenSaver GLife :
$(sources) :
be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
[ BuildFeatureAttribute glu : library ]
;
DoCatalogs GLife :

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src add-ons screen_savers gravity ;
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
# For GCC2
if $(HAIKU_GCC_VERSION[1]) < 3 {
@ -18,13 +18,18 @@ local sources =
main.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
# Dependency needed to trigger downloading/unzipping the package before
# compiling the files.
ScreenSaver Gravity :
$(sources)
: be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++)
:
be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++)
[ BuildFeatureAttribute glu : library ]
;
DoCatalogs Gravity :

@ -1,5 +1,5 @@
SubDir HAIKU_TOP src apps 3dmov ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -19,7 +19,7 @@ local sources =
GLUtility.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
Application 3DMov :
$(sources)

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src apps glteapot ;
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -13,11 +13,16 @@ local sources =
TeapotApp.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
Application GLTeapot :
$(sources)
: be GL game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
:
be GL game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++)
[ BuildFeatureAttribute glu : library ]
: GLTeapot.rdef
;

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src apps haiku3d ;
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders mesa ;
UseBuildFeatureHeaders glu ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) mesh ] ;
SEARCH_SOURCE += [ FDirName $(SUBDIR) texture ] ;
@ -30,10 +30,15 @@ local sources =
VideoFileTexture.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
Application Haiku3d :
$(sources)
: be game GL media translation $(TARGET_LIBSTDC++)
:
be game GL media translation $(TARGET_LIBSTDC++)
[ BuildFeatureAttribute glu : library ]
: Haiku3d.rdef
;

@ -4,6 +4,8 @@ SetSubDirSupportedPlatformsBeOSCompatible ;
UsePrivateHeaders interface ;
UsePrivateSystemHeaders ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
local sources =
GLView.cpp
@ -18,19 +20,18 @@ if $(TARGET_PLATFORM) != haiku {
# We need our public GL headers also when not compiling for Haiku.
}
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_GLU_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute glu : headers ] ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
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 ] ;
UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ;
local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ;
UseHeaders [ FDirName $(privateHeaders) mesa ] ;
UseHeaders [ FDirName $(privateHeaders) mesa main ] ;
UseHeaders [ FDirName $(privateHeaders) mapi ] ;
UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ;
# For older versions of Mesa
UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa glapi ] ;
UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ;
LINKFLAGS on libGL.so = [ on libGL.so return $(LINKFLAGS) ]
-Xlinker --whole-archive -Xlinker --no-undefined ;
@ -43,10 +44,10 @@ if $(HAIKU_GCC_VERSION[1]) < 3 {
SharedLibrary libGL.so : $(sources) :
# GLU
$(HAIKU_GLU_LIBS)
[ BuildFeatureAttribute glu : library ]
# GLAPI Dispatch code (from Mesa buildpackage)
$(HAIKU_GLAPI_LIB)
[ BuildFeatureAttribute mesa : glapiLibrary ]
# External libraries:
game # BWindowScreen needed by BGLScreen stub class

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src libs glut ;
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -57,12 +57,15 @@ if $(HAIKU_GCC_VERSION[1]) < 3 {
# Ensure Mesa dependency is met
Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ]
: $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
SharedLibrary libglut.so :
$(sourcesCpp)
$(sourcesCc)
:
GL game be $(TARGET_LIBSTDC++)
[ BuildFeatureAttribute glu : library ]
;

@ -1,5 +1,5 @@
SubDir HAIKU_TOP src tests kits opengl demos gears ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -15,7 +15,7 @@ local sources =
gears.c
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
SimpleTest GLGears :

@ -1,5 +1,5 @@
SubDir HAIKU_TOP src tests kits opengl direct_mode ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -14,7 +14,7 @@ local sources =
GLDirectMode.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
SimpleTest GLDirectMode :
$(sources)

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src tests kits opengl glinfo ;
SubDirSysHdrs $(HAIKU_GLU_HEADERS) ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
UsePrivateHeaders interface ;
@ -14,7 +14,10 @@ local sources =
GearsView.cpp
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
# Dependency needed to trigger downloading/unzipping the package before
# compiling the files.
@ -24,6 +27,7 @@ Preference GLInfo :
be GL libglut.so
translation libcolumnlistview.a $(HAIKU_LOCALE_LIBS)
$(TARGET_LIBSUPC++)
[ BuildFeatureAttribute glu : library ]
:
GLInfo.rdef
;

@ -1,5 +1,5 @@
SubDir HAIKU_TOP src tests kits opengl glsl ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -14,7 +14,8 @@ local shadersources =
shaderutil.c
;
Includes [ FGristFiles $(shadersources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(shadersources) ]
: [ BuildFeatureAttribute mesa : headers ] ;
StaticLibrary libshaderutil.a :
$(shadersources)

@ -1,5 +1,5 @@
SubDir HAIKU_TOP src tests kits opengl glut game_mode ;
SubDirSysHdrs $(HAIKU_MESA_HEADERS) ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ;
@ -14,7 +14,7 @@ local sources =
game_mode.c
;
Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ;
SimpleTest GLUTGameMode :
$(sources)