Support building most system libraries for secondary arch

Also adjust the HaikuImageGet[Private]SystemLibs rules to support to
return the library targets matching the current architecture.
This commit is contained in:
Ingo Weinhold
2013-08-06 00:45:22 +02:00
parent 040a81419d
commit 225b638263
18 changed files with 521 additions and 423 deletions
+11 -7
View File
@@ -67,31 +67,35 @@ SYSTEM_DEMOS = [ FFilterByBuildFeatures
rule HaikuImageGetSystemLibs
{
return [ FFilterByBuildFeatures
return
# libs with special grist
[ MultiArchDefaultGristFiles libroot.so : revisioned ]
$(HAIKU_SHARED_LIBSTDC++_$(TARGET_PACKAGING_ARCH))
$(HAIKU_SHARED_LIBSUPC++_$(TARGET_PACKAGING_ARCH))
# libs with standard grist
[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libbe.so libbsd.so libbnetapi.so
libdebug.so libdevice.so
libgame.so libGL.so@x86 libglut.so@x86
libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so
libnetwork.so
libpackage.so
<revisioned>libroot.so
libscreensaver.so
libtextencoding.so libtiff.so libtracker.so libtranslation.so
$(HAIKU_SHARED_LIBSTDC++_$(HAIKU_PACKAGING_ARCH))
$(HAIKU_SHARED_LIBSUPC++_$(HAIKU_PACKAGING_ARCH))
] ;
] ]
;
}
rule HaikuImageGetPrivateSystemLibs
{
return [ FFilterByBuildFeatures
return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libalm.so
libfluidsynth.so
libilmimf.so
libpackage-add-on-libsolv.so
libroot-addon-icu.so
] ;
] ] ;
}
+12 -8
View File
@@ -63,31 +63,35 @@ SYSTEM_DEMOS = ;
rule HaikuImageGetSystemLibs
{
return [ FFilterByBuildFeatures
return
# libs with special grist
[ MultiArchDefaultGristFiles libroot.so : revisioned ]
$(HAIKU_SHARED_LIBSTDC++_$(TARGET_PACKAGING_ARCH))
$(HAIKU_SHARED_LIBSUPC++_$(TARGET_PACKAGING_ARCH))
# libs with standard grist
[ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libbe.so libbsd.so libbnetapi.so
libdebug.so libdevice.so
libgame.so
libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so
libnetwork.so
libpackage.so
<revisioned>libroot.so
libscreensaver.so
libtextencoding.so libtracker.so libtranslation.so
$(HAIKU_SHARED_LIBSTDC++_$(HAIKU_PACKAGING_ARCH))
$(HAIKU_SHARED_LIBSUPC++_$(HAIKU_PACKAGING_ARCH))
] ;
] ]
;
}
rule HaikuImageGetPrivateSystemLibs
{
return [ FFilterByBuildFeatures
return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libalm.so
# libfluidsynth.so
libfluidsynth.so
# libilmimf.so
libpackage-add-on-libsolv.so
libroot-addon-icu.so
] ;
] ] ;
}
+7 -2
View File
@@ -7,7 +7,10 @@ UsePrivateHeaders device ;
# for usb_raw.h that defines the ioctl protocol used by the USB classes
UseHeaders [ FDirName $(HAIKU_TOP) src add-ons kernel drivers bus usb ] : true ;
SharedLibrary libdevice.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libdevice.so ] :
A2D.cpp
D2A.cpp
DigitalPort.cpp
@@ -20,4 +23,6 @@ SharedLibrary libdevice.so :
USBInterface.cpp
USBRoster.cpp
: be $(TARGET_LIBSUPC++)
;
;
}
}
+6 -2
View File
@@ -12,8 +12,10 @@ SubDirSysHdrs $(SUBDIR) ;
if $(TARGET_PLATFORM) = haiku {
SharedLibrary libgame.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libgame.so ] :
# Public Game Kit
DirectWindow.cpp
WindowScreen.cpp
@@ -30,6 +32,8 @@ if $(TARGET_PLATFORM) = haiku {
GSUtility.cpp
: be media $(TARGET_LIBSUPC++)
;
}
}
} else if $(TARGET_PLATFORM) = libbe_test {
SharedLibrary libgame.so :
+14 -8
View File
@@ -35,8 +35,11 @@ local sources =
;
# use OpenSSL, if enabled
if [ FIsBuildFeatureEnabled openssl ] {
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
# use OpenSSL, if enabled
if [ FIsBuildFeatureEnabled openssl ] {
SubDirC++Flags -DUSE_SSL ;
UseBuildFeatureHeaders openssl ;
Includes [ FGristFiles $(sources) ]
@@ -44,22 +47,25 @@ if [ FIsBuildFeatureEnabled openssl ] {
# Dependency needed to trigger downloading/unzipping the package before
# compiling the files.
SetupFeatureObjectsDir ssl ;
} else {
} else {
SetupFeatureObjectsDir no-ssl ;
}
}
AddResources libmail.so : libmail.rdef ;
local libmail = [ MultiArchDefaultGristFiles libmail.so ] ;
AddResources $(libmail) : libmail.rdef ;
SharedLibrary libmail.so :
SharedLibrary $(libmail) :
$(sources)
:
be libbnetapi.so libtextencoding.so tracker
be bnetapi textencoding tracker
$(TARGET_LIBSTDC++)
$(TARGET_NETWORK_LIBS)
$(TARGET_SELECT_UNAME_ETC_LIB)
[ BuildFeatureAttribute openssl : libraries ]
localestub
;
;
}
}
DoCatalogs libmail.so :
+7 -2
View File
@@ -13,7 +13,10 @@ if $(CHECK_MALLOC) {
SubDirC++Flags -D_NO_INLINE_ASM -fcheck-memory-usage ;
}
SharedLibrary libmedia.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libmedia.so ] :
# Private Media Kit
!missing_symbols.cpp
SoundConsumer.cpp
@@ -82,4 +85,6 @@ SharedLibrary libmedia.so :
WriterPlugin.cpp
:
be $(TARGET_LIBSUPC++) $(TARGET_LIBSTDC++)
;
;
}
}
+9 -4
View File
@@ -11,7 +11,10 @@ if $(TARGET_PLATFORM) != haiku {
UsePrivateHeaders midi ;
UseLibraryHeaders fluidsynth ;
SharedLibrary libmidi.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libmidi.so ] :
Midi.cpp
MidiGlue.cpp
MidiPort.cpp
@@ -24,8 +27,10 @@ SharedLibrary libmidi.so :
Synth.cpp
:
be
libmidi2.so
midi2
media
libfluidsynth.so
[ MultiArchDefaultGristFiles libfluidsynth.so ]
$(TARGET_LIBSUPC++)
;
;
}
}
+7 -3
View File
@@ -9,7 +9,10 @@ if $(TARGET_PLATFORM) != haiku {
UsePrivateHeaders midi ;
SharedLibrary libmidi2.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libmidi2.so ] :
MidiConsumer.cpp
MidiEndpoint.cpp
MidiLocalConsumer.cpp
@@ -19,5 +22,6 @@ SharedLibrary libmidi2.so :
MidiRosterLooper.cpp
:
be $(TARGET_LIBSUPC++)
;
;
}
}
+19 -13
View File
@@ -6,9 +6,12 @@ UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ]
: true ;
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ;
local sslSources ;
local md5Sources ;
if [ FIsBuildFeatureEnabled openssl ] {
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
local sslSources ;
local md5Sources ;
if [ FIsBuildFeatureEnabled openssl ] {
SubDirC++Flags -DOPENSSL_ENABLED ;
UseBuildFeatureHeaders openssl ;
sslSources = SSL.cpp ;
@@ -19,13 +22,13 @@ if [ FIsBuildFeatureEnabled openssl ] {
# Dependency needed to trigger downloading/unzipping the package before
# compiling the files.
SetupFeatureObjectsDir ssl ;
} else {
} else {
# As we don't have md5 from ssl, use our own
md5Sources = md5.c ;
SetupFeatureObjectsDir no-ssl ;
}
}
SharedLibrary libbnetapi.so :
SharedLibrary [ MultiArchDefaultGristFiles libbnetapi.so ] :
init.cpp
DynamicBuffer.cpp
NetEndpoint.cpp
@@ -48,11 +51,12 @@ SharedLibrary libbnetapi.so :
Socket.cpp
SecureSocket.cpp
# TODO: 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.
# Building of the commented out files has not been completely tested after
# integrating the code from the GSoC 2010 "Services Kit" project and doing
# some renaming of types, constants and methods.
# TODO: 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.
# Building of the commented out files has not been completely tested
# after integrating the code from the GSoC 2010 "Services Kit"
# project and doing some renaming of types, constants and methods.
HttpAuthentication.cpp
HttpHeaders.cpp
HttpForm.cpp
@@ -74,5 +78,7 @@ SharedLibrary libbnetapi.so :
:
be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++)
[ BuildFeatureAttribute openssl : libraries ]
libshared.a
;
[ MultiArchDefaultGristFiles libshared.a ]
;
}
}
+7 -2
View File
@@ -7,11 +7,16 @@ UseHeaders [ FDirName $(HAIKU_TOP) headers os add-ons screen_saver ] ;
UsePrivateHeaders screen_saver ;
SharedLibrary libscreensaver.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libscreensaver.so ] :
BuildScreenSaverDefaultSettingsView.cpp
ScreenSaver.cpp
ScreenSaverSettings.cpp
ScreenSaverRunner.cpp
:
be game $(TARGET_LIBSUPC++)
;
;
}
}
+10 -2
View File
@@ -8,12 +8,20 @@ AddResources libtextencoding.so : libtextencoding.rdef ;
UsePrivateHeaders textencoding ;
UseLibraryHeaders iconv ;
SharedLibrary libtextencoding.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libtextencoding.so ] :
CharacterSet.cpp
CharacterSetRoster.cpp
character_sets.cpp
utf8_conversions.cpp
: be libiconv.a $(TARGET_LIBSUPC++) localestub ;
:
be
[ MultiArchDefaultGristFiles libiconv.a ]
$(TARGET_LIBSUPC++) localestub ;
}
}
DoCatalogs libtextencoding.so :
x-vnd.Haiku-libtextencoding
+17 -8
View File
@@ -5,8 +5,6 @@ AddSubDirSupportedPlatforms libbe_test ;
UsePrivateHeaders interface mount shared storage support system tracker ;
AddResources libtracker.so : TrackerIcons.rdef libtracker.rdef ;
SubDirC++Flags
-D_BUILDING_tracker=1
# -D_INCLUDES_CLASS_DEVICE_MAP=1
@@ -15,12 +13,19 @@ SubDirC++Flags
# -D_SILENTLY_CORRECT_FILE_NAMES=1
;
local vector_icon_libs ;
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) && $(TARGET_PLATFORM) != libbe_test {
vector_icon_libs = libicon.a libagg.a ;
}
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
local vectorIconLibs ;
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) && $(TARGET_PLATFORM)
!= libbe_test {
vectorIconLibs = [ MultiArchDefaultGristFiles libicon.a libagg.a ] ;
}
SharedLibrary libtracker.so :
local libtracker = [ MultiArchDefaultGristFiles libtracker.so ] ;
AddResources $(libtracker) : TrackerIcons.rdef libtracker.rdef ;
SharedLibrary $(libtracker) :
AttributeStream.cpp
AutoMounterSettings.cpp
BackgroundImage.cpp
@@ -93,8 +98,12 @@ SharedLibrary libtracker.so :
VolumeWindow.cpp
WidgetAttributeText.cpp
: be translation $(vector_icon_libs) $(TARGET_LIBSTDC++) localestub libshared.a
:
be translation $(vectorIconLibs) $(TARGET_LIBSTDC++) localestub
[ MultiArchDefaultGristFiles libshared.a ]
;
}
}
DoCatalogs libtracker.so :
x-vnd.Haiku-libtracker
+12 -6
View File
@@ -8,19 +8,25 @@ if $(TARGET_PLATFORM) != haiku {
}
UsePrivateHeaders translation textencoding ;
UsePrivateSystemHeaders ;
SharedLibrary libtranslation.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
UsePrivateSystemHeaders ;
SharedLibrary [ MultiArchDefaultGristFiles libtranslation.so ] :
BitmapStream.cpp
FuncTranslator.cpp
TranslationUtils.cpp
Translator.cpp
TranslatorRoster.cpp
: be libtextencoding.so $(TARGET_LIBSTDC++)
;
: be textencoding $(TARGET_LIBSTDC++)
;
}
}
if $(TARGET_PLATFORM) = libbe_test {
HaikuInstall install-test-apps : $(HAIKU_APP_TEST_LIB_DIR) : libtranslation.so
: tests!apps ;
HaikuInstall install-test-apps : $(HAIKU_APP_TEST_LIB_DIR)
: libtranslation.so : tests!apps ;
}
+10 -4
View File
@@ -3,10 +3,13 @@ SubDir HAIKU_TOP src libs alm ;
UseLibraryHeaders linprog alm ;
UsePrivateHeaders shared ;
UseHeaders [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) kits interface ] ;
UseHeaders [ FDirName $(HAIKU_TOP) src kits interface ] ;
SharedLibrary libalm.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libalm.so ] :
ALMGroup.cpp
ALMLayout.cpp
ALMLayoutBuilder.cpp
@@ -17,5 +20,8 @@ SharedLibrary libalm.so :
SharedSolver.cpp
Tab.cpp
:
liblinprog.a be $(TARGET_LIBSTDC++)
;
[ MultiArchDefaultGristFiles liblinprog.a ]
be $(TARGET_LIBSTDC++)
;
}
}
+7 -2
View File
@@ -6,7 +6,10 @@ UseLibraryHeaders fluidsynth ;
SubDirCcFlags -DHAVE_CONFIG_H ;
SharedLibrary libfluidsynth.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libfluidsynth.so ] :
fluid_adriver.c
fluid_aufile.c
fluid_chan.c
@@ -33,7 +36,9 @@ SharedLibrary libfluidsynth.so :
fluid_sys.c
fluid_tuning.c
fluid_voice.c
;
;
}
}
# // for testing purpose
#StdBinCommands fluidsynth.c : libfluidsynth.so ;
+7 -2
View File
@@ -3,6 +3,11 @@ SubDir HAIKU_TOP src libs gnu ;
UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility gnu ] : true ;
UsePrivateHeaders shared ;
SharedLibrary libgnu.so :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libgnu.so ] :
xattr.cpp
;
;
}
}
+12 -5
View File
@@ -5,17 +5,24 @@ AddSubDirSupportedPlatforms libbe_test ;
UseLibraryHeaders iconv ;
# disable warnings we don't want here
TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)
= [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH))
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ;
# disable warnings we don't want here
TARGET_WARNING_CCFLAGS_$(architecture)
= [ FFilter $(TARGET_WARNING_CCFLAGS_$(architecture))
: -Wmissing-prototypes -Wsign-compare ] ;
SubDirCcFlags
SubDirCcFlags
-DLIBDIR="\\\"/boot/system/lib\\\""
-DICONV_CONST=""
;
StaticLibrary libiconv.a :
StaticLibrary [ MultiArchDefaultGristFiles libiconv.a ] :
iconv.c
localcharset.c
;
}
}
+7 -3
View File
@@ -6,12 +6,16 @@ UseLibraryHeaders linprog ;
UsePrivateHeaders shared ;
StaticLibrary liblinprog.a :
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
StaticLibrary [ MultiArchDefaultGristFiles liblinprog.a ] :
ActiveSetSolver.cpp
Constraint.cpp
LayoutOptimizer.cpp
LinearSpec.cpp
Summand.cpp
Variable.cpp
;
;
}
}