Support building more libraries for secondary architecture

This commit is contained in:
Ingo Weinhold
2013-08-10 09:53:38 +02:00
parent 47fd9e6dc6
commit f51bf7d932
8 changed files with 226 additions and 177 deletions
@@ -2,12 +2,17 @@ SubDir HAIKU_TOP src add-ons translators exr openexr half ;
SubDirSysHdrs [ FDirName $(SUBDIR) ] ; SubDirSysHdrs [ FDirName $(SUBDIR) ] ;
if $(TARGET_PACKAGING_ARCH) = x86_gcc2 { local architectureObject ;
SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; for architectureObject in [ MultiArchSubDirSetup ] {
} on $(architectureObject) {
if $(TARGET_PACKAGING_ARCH) = x86_gcc2 {
SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ;
}
StaticLibrary libhalf.a : StaticLibrary [ MultiArchDefaultGristFiles libhalf.a ] :
eLut.cpp eLut.cpp
half.cpp half.cpp
toFloat.cpp toFloat.cpp
; ;
}
}
@@ -2,8 +2,12 @@ SubDir HAIKU_TOP src add-ons translators exr openexr iex ;
SubDirSysHdrs [ FDirName $(SUBDIR) ] ; SubDirSysHdrs [ FDirName $(SUBDIR) ] ;
StaticLibrary libiex.a : local architectureObject ;
IexBaseExc.cpp for architectureObject in [ MultiArchSubDirSetup ] {
IexThrowErrnoExc.cpp on $(architectureObject) {
; StaticLibrary [ MultiArchDefaultGristFiles libiex.a ] :
IexBaseExc.cpp
IexThrowErrnoExc.cpp
;
}
}
@@ -7,76 +7,83 @@ SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) ilmthread ] ;
SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) imath ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) imath ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) config ] ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) config ] ;
if $(TARGET_PACKAGING_ARCH) = x86_gcc2 { local architectureObject ;
SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
UseBuildFeatureHeaders zlib ;
if $(TARGET_PACKAGING_ARCH) = x86_gcc2 {
SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ;
}
Includes [ FGristFiles ImfPxr24Compressor.cpp ImfZipCompressor.cpp ]
: [ BuildFeatureAttribute zlib : headers ] ;
#StaticLibrary [ MultiArchDefaultGristFiles libilmimf.a ] :
SharedLibrary [ MultiArchDefaultGristFiles libilmimf.so ] :
b44ExpLogTable.cpp
ImfAttribute.cpp
ImfB44Compressor.cpp
ImfBoxAttribute.cpp
ImfChannelListAttribute.cpp
ImfChannelList.cpp
ImfChromaticitiesAttribute.cpp
ImfChromaticities.cpp
ImfCompressionAttribute.cpp
ImfCompressor.cpp
ImfConvert.cpp
ImfCRgbaFile.cpp
ImfDoubleAttribute.cpp
ImfEnvmapAttribute.cpp
ImfEnvmap.cpp
ImfFloatAttribute.cpp
ImfFrameBuffer.cpp
ImfFramesPerSecond.cpp
ImfHeader.cpp
ImfHuf.cpp
ImfInputFile.cpp
ImfIntAttribute.cpp
ImfIO.cpp
ImfKeyCodeAttribute.cpp
ImfKeyCode.cpp
ImfLineOrderAttribute.cpp
ImfLut.cpp
ImfMatrixAttribute.cpp
ImfMisc.cpp
ImfOpaqueAttribute.cpp
ImfOutputFile.cpp
ImfPizCompressor.cpp
ImfPreviewImageAttribute.cpp
ImfPreviewImage.cpp
ImfPxr24Compressor.cpp
ImfRationalAttribute.cpp
ImfRational.cpp
ImfRgbaFile.cpp
ImfRgbaYca.cpp
ImfRleCompressor.cpp
ImfScanLineInputFile.cpp
ImfStandardAttributes.cpp
ImfStdIO.cpp
ImfStringAttribute.cpp
ImfTestFile.cpp
ImfThreading.cpp
ImfTileDescriptionAttribute.cpp
ImfTiledInputFile.cpp
ImfTiledMisc.cpp
ImfTiledOutputFile.cpp
ImfTiledRgbaFile.cpp
ImfTileOffsets.cpp
ImfTimeCodeAttribute.cpp
ImfTimeCode.cpp
ImfVecAttribute.cpp
ImfVersion.cpp
ImfWav.cpp
ImfZipCompressor.cpp
:
[ MultiArchDefaultGristFiles libhalf.a libiex.a libimath.a
libilmthread.a ]
$(TARGET_LIBSTDC++)
[ BuildFeatureAttribute zlib : library ]
;
}
} }
UseBuildFeatureHeaders zlib ;
Includes [ FGristFiles ImfPxr24Compressor.cpp ImfZipCompressor.cpp ]
: [ BuildFeatureAttribute zlib : headers ] ;
#StaticLibrary libilmimf.a :
SharedLibrary libilmimf.so :
b44ExpLogTable.cpp
ImfAttribute.cpp
ImfB44Compressor.cpp
ImfBoxAttribute.cpp
ImfChannelListAttribute.cpp
ImfChannelList.cpp
ImfChromaticitiesAttribute.cpp
ImfChromaticities.cpp
ImfCompressionAttribute.cpp
ImfCompressor.cpp
ImfConvert.cpp
ImfCRgbaFile.cpp
ImfDoubleAttribute.cpp
ImfEnvmapAttribute.cpp
ImfEnvmap.cpp
ImfFloatAttribute.cpp
ImfFrameBuffer.cpp
ImfFramesPerSecond.cpp
ImfHeader.cpp
ImfHuf.cpp
ImfInputFile.cpp
ImfIntAttribute.cpp
ImfIO.cpp
ImfKeyCodeAttribute.cpp
ImfKeyCode.cpp
ImfLineOrderAttribute.cpp
ImfLut.cpp
ImfMatrixAttribute.cpp
ImfMisc.cpp
ImfOpaqueAttribute.cpp
ImfOutputFile.cpp
ImfPizCompressor.cpp
ImfPreviewImageAttribute.cpp
ImfPreviewImage.cpp
ImfPxr24Compressor.cpp
ImfRationalAttribute.cpp
ImfRational.cpp
ImfRgbaFile.cpp
ImfRgbaYca.cpp
ImfRleCompressor.cpp
ImfScanLineInputFile.cpp
ImfStandardAttributes.cpp
ImfStdIO.cpp
ImfStringAttribute.cpp
ImfTestFile.cpp
ImfThreading.cpp
ImfTileDescriptionAttribute.cpp
ImfTiledInputFile.cpp
ImfTiledMisc.cpp
ImfTiledOutputFile.cpp
ImfTiledRgbaFile.cpp
ImfTileOffsets.cpp
ImfTimeCodeAttribute.cpp
ImfTimeCode.cpp
ImfVecAttribute.cpp
ImfVersion.cpp
ImfWav.cpp
ImfZipCompressor.cpp
: libhalf.a libiex.a libimath.a libilmthread.a $(TARGET_LIBSTDC++)
[ BuildFeatureAttribute zlib : library ]
;
@@ -4,13 +4,18 @@ SubDirSysHdrs [ FDirName $(SUBDIR) ] ;
SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) iex ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) iex ] ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) config ] ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) config ] ;
StaticLibrary libilmthread.a : local architectureObject ;
IlmThread.cpp for architectureObject in [ MultiArchSubDirSetup ] {
IlmThreadMutex.cpp on $(architectureObject) {
IlmThreadMutexPosix.cpp StaticLibrary [ MultiArchDefaultGristFiles libilmthread.a ] :
IlmThreadPool.cpp IlmThread.cpp
IlmThreadPosix.cpp IlmThreadMutex.cpp
IlmThreadSemaphore.cpp IlmThreadMutexPosix.cpp
IlmThreadSemaphorePosixCompat.cpp IlmThreadPool.cpp
IlmThreadSemaphorePosix.cpp IlmThreadPosix.cpp
; IlmThreadSemaphore.cpp
IlmThreadSemaphorePosixCompat.cpp
IlmThreadSemaphorePosix.cpp
;
}
}
@@ -4,16 +4,21 @@ SubDirSysHdrs [ FDirName $(SUBDIR) ] ;
SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) half ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) half ] ;
SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) iex ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) iex ] ;
if $(TARGET_PACKAGING_ARCH) = x86_gcc2 { local architectureObject ;
SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; for architectureObject in [ MultiArchSubDirSetup ] {
} on $(architectureObject) {
if $(TARGET_PACKAGING_ARCH) = x86_gcc2 {
SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ;
}
StaticLibrary libimath.a : StaticLibrary [ MultiArchDefaultGristFiles libimath.a ] :
ImathBox.cpp ImathBox.cpp
ImathColorAlgo.cpp ImathColorAlgo.cpp
ImathFun.cpp ImathFun.cpp
ImathMatrixAlgo.cpp ImathMatrixAlgo.cpp
ImathRandom.cpp ImathRandom.cpp
ImathShear.cpp ImathShear.cpp
ImathVec.cpp ImathVec.cpp
; ;
}
}
+44 -35
View File
@@ -2,11 +2,6 @@ SubDir HAIKU_TOP src kits opengl ;
SetSubDirSupportedPlatformsBeOSCompatible ; SetSubDirSupportedPlatformsBeOSCompatible ;
UsePrivateHeaders interface ;
UsePrivateSystemHeaders ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
local sources = local sources =
GLView.cpp GLView.cpp
GLDispatcher.cpp GLDispatcher.cpp
@@ -20,38 +15,52 @@ if $(TARGET_PLATFORM) != haiku {
# We need our public GL headers also when not compiling for Haiku. # We need our public GL headers also when not compiling for Haiku.
} }
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute glu : headers ] ; local architectureObject ;
Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ;
UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ; UsePrivateHeaders interface ;
local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ; UsePrivateSystemHeaders ;
UseHeaders [ FDirName $(privateHeaders) mesa ] ; UseBuildFeatureHeaders glu ;
UseHeaders [ FDirName $(privateHeaders) mesa main ] ; UseBuildFeatureHeaders mesa ;
UseHeaders [ FDirName $(privateHeaders) mapi ] ;
UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ;
# For older versions of Mesa Includes [ FGristFiles $(sources) ]
UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ; : [ BuildFeatureAttribute glu : headers ] ;
Includes [ FGristFiles $(sources) ]
: [ BuildFeatureAttribute mesa : headers ] ;
LINKFLAGS on libGL.so = [ on libGL.so return $(LINKFLAGS) ] UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ;
-Xlinker --whole-archive -Xlinker --no-undefined ; 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 GCC2 # For older versions of Mesa
if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ;
SubDirC++Flags --no-warnings ;
LINKFLAGS on libGL.so = [ on libGL.so return $(LINKFLAGS) ]
-Xlinker --whole-archive -Xlinker --no-undefined ;
# For GCC2
if $(architecture) = x86_gcc2 {
SubDirC++Flags --no-warnings ;
}
SharedLibrary [ MultiArchDefaultGristFiles libGL.so ] : $(sources) :
# GLU
[ BuildFeatureAttribute glu : library ]
# GLAPI Dispatch code (from Mesa buildpackage)
[ BuildFeatureAttribute mesa : glapiLibrary ]
# External libraries:
game # BWindowScreen needed by BGLScreen stub class
network
be
$(TARGET_LIBSTDC++)
;
}
} }
SharedLibrary libGL.so : $(sources) :
# GLU
[ BuildFeatureAttribute glu : library ]
# GLAPI Dispatch code (from Mesa buildpackage)
[ BuildFeatureAttribute mesa : glapiLibrary ]
# External libraries:
game # BWindowScreen needed by BGLScreen stub class
network
be
$(TARGET_LIBSTDC++)
;
+27 -20
View File
@@ -1,6 +1,4 @@
SubDir HAIKU_TOP src libs glut ; SubDir HAIKU_TOP src libs glut ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
SetSubDirSupportedPlatformsBeOSCompatible ; SetSubDirSupportedPlatformsBeOSCompatible ;
@@ -50,22 +48,31 @@ local sourcesCpp =
; ;
# For GCC2 local architectureObject ;
if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { for architectureObject in [ MultiArchSubDirSetup ] {
SubDirC++Flags --no-warnings ; on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ;
UseBuildFeatureHeaders glu ;
UseBuildFeatureHeaders mesa ;
# For GCC2
if $(architecture) = x86_gcc2 {
SubDirC++Flags --no-warnings ;
}
# Ensure Mesa dependency is met
Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
SharedLibrary [ MultiArchDefaultGristFiles libglut.so ] :
$(sourcesCpp)
$(sourcesCc)
:
GL game be $(TARGET_LIBSTDC++)
[ BuildFeatureAttribute glu : library ]
;
}
} }
# Ensure Mesa dependency is met
Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ] :
[ BuildFeatureAttribute glu : headers ]
[ BuildFeatureAttribute mesa : headers ]
;
SharedLibrary libglut.so :
$(sourcesCpp)
$(sourcesCc)
:
GL game be $(TARGET_LIBSTDC++)
[ BuildFeatureAttribute glu : library ]
;
+22 -15
View File
@@ -1,9 +1,5 @@
SubDir HAIKU_TOP src libs tiff ; SubDir HAIKU_TOP src libs tiff ;
UseLibraryHeaders tiff ;
UseBuildFeatureHeaders jpeg ;
UseBuildFeatureHeaders zlib ;
SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ;
local shared_files = local shared_files =
@@ -46,17 +42,28 @@ local shared_files =
tif_zip.c tif_zip.c
; ;
Includes [ FGristFiles tif_jpeg.c tif_ojpeg.c ] local architectureObject ;
: [ BuildFeatureAttribute jpeg : headers ] ; for architectureObject in [ MultiArchSubDirSetup ] {
Includes [ FGristFiles tif_pixarlog.c tif_zip.c ] on $(architectureObject) {
: [ BuildFeatureAttribute zlib : headers ] ; UseLibraryHeaders tiff ;
UseBuildFeatureHeaders jpeg ;
UseBuildFeatureHeaders zlib ;
Objects $(shared_files) ; Includes [ FGristFiles tif_jpeg.c tif_ojpeg.c ]
: [ BuildFeatureAttribute jpeg : headers ] ;
Includes [ FGristFiles tif_pixarlog.c tif_zip.c ]
: [ BuildFeatureAttribute zlib : headers ] ;
SharedLibrary libtiff.so : [ FGristFiles $(shared_files:S=.o) ] Objects $(shared_files) ;
:
[ BuildFeatureAttribute jpeg : library ]
[ BuildFeatureAttribute zlib : library ]
: 3.8 ;
StaticLibrary libtiff.a : [ FGristFiles $(shared_files:S=.o) ] ; SharedLibrary [ MultiArchDefaultGristFiles libtiff.so ]
: [ FGristFiles $(shared_files:S=.o) ]
:
[ BuildFeatureAttribute jpeg : library ]
[ BuildFeatureAttribute zlib : library ]
: 3.8 ;
StaticLibrary [ MultiArchDefaultGristFiles libtiff.a ]
: [ FGristFiles $(shared_files:S=.o) ] ;
}
}