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 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 libbe.so libbsd.so libbnetapi.so
libdebug.so libdevice.so libdebug.so libdevice.so
libgame.so libGL.so@x86 libglut.so@x86 libgame.so libGL.so@x86 libglut.so@x86
libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so
libnetwork.so libnetwork.so
libpackage.so libpackage.so
<revisioned>libroot.so
libscreensaver.so libscreensaver.so
libtextencoding.so libtiff.so libtracker.so libtranslation.so libtextencoding.so libtiff.so libtracker.so libtranslation.so
$(HAIKU_SHARED_LIBSTDC++_$(HAIKU_PACKAGING_ARCH)) ] ]
$(HAIKU_SHARED_LIBSUPC++_$(HAIKU_PACKAGING_ARCH)) ;
] ;
} }
rule HaikuImageGetPrivateSystemLibs rule HaikuImageGetPrivateSystemLibs
{ {
return [ FFilterByBuildFeatures return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libalm.so libalm.so
libfluidsynth.so libfluidsynth.so
libilmimf.so libilmimf.so
libpackage-add-on-libsolv.so libpackage-add-on-libsolv.so
libroot-addon-icu.so libroot-addon-icu.so
] ; ] ] ;
} }
+12 -8
View File
@@ -63,31 +63,35 @@ SYSTEM_DEMOS = ;
rule HaikuImageGetSystemLibs 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 libbe.so libbsd.so libbnetapi.so
libdebug.so libdevice.so libdebug.so libdevice.so
libgame.so libgame.so
libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so libgnu.so libmail.so libmedia.so libmidi.so libmidi2.so
libnetwork.so libnetwork.so
libpackage.so libpackage.so
<revisioned>libroot.so
libscreensaver.so libscreensaver.so
libtextencoding.so libtracker.so libtranslation.so libtextencoding.so libtracker.so libtranslation.so
$(HAIKU_SHARED_LIBSTDC++_$(HAIKU_PACKAGING_ARCH)) ] ]
$(HAIKU_SHARED_LIBSUPC++_$(HAIKU_PACKAGING_ARCH)) ;
] ;
} }
rule HaikuImageGetPrivateSystemLibs rule HaikuImageGetPrivateSystemLibs
{ {
return [ FFilterByBuildFeatures return [ MultiArchDefaultGristFiles [ FFilterByBuildFeatures
libalm.so libalm.so
# libfluidsynth.so libfluidsynth.so
# libilmimf.so # libilmimf.so
libpackage-add-on-libsolv.so libpackage-add-on-libsolv.so
libroot-addon-icu.so libroot-addon-icu.so
] ; ] ] ;
} }
+6 -1
View File
@@ -7,7 +7,10 @@ UsePrivateHeaders device ;
# for usb_raw.h that defines the ioctl protocol used by the USB classes # 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 ; 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 A2D.cpp
D2A.cpp D2A.cpp
DigitalPort.cpp DigitalPort.cpp
@@ -21,3 +24,5 @@ SharedLibrary libdevice.so :
USBRoster.cpp USBRoster.cpp
: be $(TARGET_LIBSUPC++) : be $(TARGET_LIBSUPC++)
; ;
}
}
+6 -2
View File
@@ -12,8 +12,10 @@ SubDirSysHdrs $(SUBDIR) ;
if $(TARGET_PLATFORM) = haiku { if $(TARGET_PLATFORM) = haiku {
local architectureObject ;
SharedLibrary libgame.so : for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libgame.so ] :
# Public Game Kit # Public Game Kit
DirectWindow.cpp DirectWindow.cpp
WindowScreen.cpp WindowScreen.cpp
@@ -30,6 +32,8 @@ if $(TARGET_PLATFORM) = haiku {
GSUtility.cpp GSUtility.cpp
: be media $(TARGET_LIBSUPC++) : be media $(TARGET_LIBSUPC++)
; ;
}
}
} else if $(TARGET_PLATFORM) = libbe_test { } else if $(TARGET_PLATFORM) = libbe_test {
SharedLibrary libgame.so : SharedLibrary libgame.so :
+9 -3
View File
@@ -35,6 +35,9 @@ local sources =
; ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
# use OpenSSL, if enabled # use OpenSSL, if enabled
if [ FIsBuildFeatureEnabled openssl ] { if [ FIsBuildFeatureEnabled openssl ] {
SubDirC++Flags -DUSE_SSL ; SubDirC++Flags -DUSE_SSL ;
@@ -48,18 +51,21 @@ if [ FIsBuildFeatureEnabled openssl ] {
SetupFeatureObjectsDir no-ssl ; SetupFeatureObjectsDir no-ssl ;
} }
AddResources libmail.so : libmail.rdef ; local libmail = [ MultiArchDefaultGristFiles libmail.so ] ;
AddResources $(libmail) : libmail.rdef ;
SharedLibrary libmail.so : SharedLibrary $(libmail) :
$(sources) $(sources)
: :
be libbnetapi.so libtextencoding.so tracker be bnetapi textencoding tracker
$(TARGET_LIBSTDC++) $(TARGET_LIBSTDC++)
$(TARGET_NETWORK_LIBS) $(TARGET_NETWORK_LIBS)
$(TARGET_SELECT_UNAME_ETC_LIB) $(TARGET_SELECT_UNAME_ETC_LIB)
[ BuildFeatureAttribute openssl : libraries ] [ BuildFeatureAttribute openssl : libraries ]
localestub localestub
; ;
}
}
DoCatalogs libmail.so : DoCatalogs libmail.so :
+6 -1
View File
@@ -13,7 +13,10 @@ if $(CHECK_MALLOC) {
SubDirC++Flags -D_NO_INLINE_ASM -fcheck-memory-usage ; 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 # Private Media Kit
!missing_symbols.cpp !missing_symbols.cpp
SoundConsumer.cpp SoundConsumer.cpp
@@ -83,3 +86,5 @@ SharedLibrary libmedia.so :
: :
be $(TARGET_LIBSUPC++) $(TARGET_LIBSTDC++) be $(TARGET_LIBSUPC++) $(TARGET_LIBSTDC++)
; ;
}
}
+8 -3
View File
@@ -11,7 +11,10 @@ if $(TARGET_PLATFORM) != haiku {
UsePrivateHeaders midi ; UsePrivateHeaders midi ;
UseLibraryHeaders fluidsynth ; UseLibraryHeaders fluidsynth ;
SharedLibrary libmidi.so : local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libmidi.so ] :
Midi.cpp Midi.cpp
MidiGlue.cpp MidiGlue.cpp
MidiPort.cpp MidiPort.cpp
@@ -24,8 +27,10 @@ SharedLibrary libmidi.so :
Synth.cpp Synth.cpp
: :
be be
libmidi2.so midi2
media media
libfluidsynth.so [ MultiArchDefaultGristFiles libfluidsynth.so ]
$(TARGET_LIBSUPC++) $(TARGET_LIBSUPC++)
; ;
}
}
+6 -2
View File
@@ -9,7 +9,10 @@ if $(TARGET_PLATFORM) != haiku {
UsePrivateHeaders midi ; UsePrivateHeaders midi ;
SharedLibrary libmidi2.so : local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libmidi2.so ] :
MidiConsumer.cpp MidiConsumer.cpp
MidiEndpoint.cpp MidiEndpoint.cpp
MidiLocalConsumer.cpp MidiLocalConsumer.cpp
@@ -20,4 +23,5 @@ SharedLibrary libmidi2.so :
: :
be $(TARGET_LIBSUPC++) be $(TARGET_LIBSUPC++)
; ;
}
}
+13 -7
View File
@@ -6,6 +6,9 @@ UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ]
: true ; : true ;
UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ; UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
local sslSources ; local sslSources ;
local md5Sources ; local md5Sources ;
if [ FIsBuildFeatureEnabled openssl ] { if [ FIsBuildFeatureEnabled openssl ] {
@@ -25,7 +28,7 @@ if [ FIsBuildFeatureEnabled openssl ] {
SetupFeatureObjectsDir no-ssl ; SetupFeatureObjectsDir no-ssl ;
} }
SharedLibrary libbnetapi.so : SharedLibrary [ MultiArchDefaultGristFiles libbnetapi.so ] :
init.cpp init.cpp
DynamicBuffer.cpp DynamicBuffer.cpp
NetEndpoint.cpp NetEndpoint.cpp
@@ -48,11 +51,12 @@ SharedLibrary libbnetapi.so :
Socket.cpp Socket.cpp
SecureSocket.cpp SecureSocket.cpp
# TODO: The HTTP stuff should all go into an add-on. It needs linking # TODO: The HTTP stuff should all go into an add-on. It needs
# against libcrypto.so and only the add-on should link against it. # linking against libcrypto.so and only the add-on should link
# Building of the commented out files has not been completely tested after # against it.
# integrating the code from the GSoC 2010 "Services Kit" project and doing # Building of the commented out files has not been completely tested
# some renaming of types, constants and methods. # after integrating the code from the GSoC 2010 "Services Kit"
# project and doing some renaming of types, constants and methods.
HttpAuthentication.cpp HttpAuthentication.cpp
HttpHeaders.cpp HttpHeaders.cpp
HttpForm.cpp HttpForm.cpp
@@ -74,5 +78,7 @@ SharedLibrary libbnetapi.so :
: :
be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++)
[ BuildFeatureAttribute openssl : libraries ] [ BuildFeatureAttribute openssl : libraries ]
libshared.a [ MultiArchDefaultGristFiles libshared.a ]
; ;
}
}
+6 -1
View File
@@ -7,7 +7,10 @@ UseHeaders [ FDirName $(HAIKU_TOP) headers os add-ons screen_saver ] ;
UsePrivateHeaders screen_saver ; UsePrivateHeaders screen_saver ;
SharedLibrary libscreensaver.so : local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libscreensaver.so ] :
BuildScreenSaverDefaultSettingsView.cpp BuildScreenSaverDefaultSettingsView.cpp
ScreenSaver.cpp ScreenSaver.cpp
ScreenSaverSettings.cpp ScreenSaverSettings.cpp
@@ -15,3 +18,5 @@ SharedLibrary libscreensaver.so :
: :
be game $(TARGET_LIBSUPC++) be game $(TARGET_LIBSUPC++)
; ;
}
}
+10 -2
View File
@@ -8,12 +8,20 @@ AddResources libtextencoding.so : libtextencoding.rdef ;
UsePrivateHeaders textencoding ; UsePrivateHeaders textencoding ;
UseLibraryHeaders iconv ; UseLibraryHeaders iconv ;
SharedLibrary libtextencoding.so : local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libtextencoding.so ] :
CharacterSet.cpp CharacterSet.cpp
CharacterSetRoster.cpp CharacterSetRoster.cpp
character_sets.cpp character_sets.cpp
utf8_conversions.cpp utf8_conversions.cpp
: be libiconv.a $(TARGET_LIBSUPC++) localestub ; :
be
[ MultiArchDefaultGristFiles libiconv.a ]
$(TARGET_LIBSUPC++) localestub ;
}
}
DoCatalogs libtextencoding.so : DoCatalogs libtextencoding.so :
x-vnd.Haiku-libtextencoding x-vnd.Haiku-libtextencoding
+16 -7
View File
@@ -5,8 +5,6 @@ AddSubDirSupportedPlatforms libbe_test ;
UsePrivateHeaders interface mount shared storage support system tracker ; UsePrivateHeaders interface mount shared storage support system tracker ;
AddResources libtracker.so : TrackerIcons.rdef libtracker.rdef ;
SubDirC++Flags SubDirC++Flags
-D_BUILDING_tracker=1 -D_BUILDING_tracker=1
# -D_INCLUDES_CLASS_DEVICE_MAP=1 # -D_INCLUDES_CLASS_DEVICE_MAP=1
@@ -15,12 +13,19 @@ SubDirC++Flags
# -D_SILENTLY_CORRECT_FILE_NAMES=1 # -D_SILENTLY_CORRECT_FILE_NAMES=1
; ;
local vector_icon_libs ; local architectureObject ;
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) && $(TARGET_PLATFORM) != libbe_test { for architectureObject in [ MultiArchSubDirSetup ] {
vector_icon_libs = libicon.a libagg.a ; 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 AttributeStream.cpp
AutoMounterSettings.cpp AutoMounterSettings.cpp
BackgroundImage.cpp BackgroundImage.cpp
@@ -93,8 +98,12 @@ SharedLibrary libtracker.so :
VolumeWindow.cpp VolumeWindow.cpp
WidgetAttributeText.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 : DoCatalogs libtracker.so :
x-vnd.Haiku-libtracker x-vnd.Haiku-libtracker
+10 -4
View File
@@ -8,19 +8,25 @@ if $(TARGET_PLATFORM) != haiku {
} }
UsePrivateHeaders translation textencoding ; UsePrivateHeaders translation textencoding ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
UsePrivateSystemHeaders ; UsePrivateSystemHeaders ;
SharedLibrary libtranslation.so : SharedLibrary [ MultiArchDefaultGristFiles libtranslation.so ] :
BitmapStream.cpp BitmapStream.cpp
FuncTranslator.cpp FuncTranslator.cpp
TranslationUtils.cpp TranslationUtils.cpp
Translator.cpp Translator.cpp
TranslatorRoster.cpp TranslatorRoster.cpp
: be libtextencoding.so $(TARGET_LIBSTDC++) : be textencoding $(TARGET_LIBSTDC++)
; ;
}
}
if $(TARGET_PLATFORM) = libbe_test { if $(TARGET_PLATFORM) = libbe_test {
HaikuInstall install-test-apps : $(HAIKU_APP_TEST_LIB_DIR) : libtranslation.so HaikuInstall install-test-apps : $(HAIKU_APP_TEST_LIB_DIR)
: tests!apps ; : libtranslation.so : tests!apps ;
} }
+9 -3
View File
@@ -3,10 +3,13 @@ SubDir HAIKU_TOP src libs alm ;
UseLibraryHeaders linprog alm ; UseLibraryHeaders linprog alm ;
UsePrivateHeaders shared ; 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 ALMGroup.cpp
ALMLayout.cpp ALMLayout.cpp
ALMLayoutBuilder.cpp ALMLayoutBuilder.cpp
@@ -17,5 +20,8 @@ SharedLibrary libalm.so :
SharedSolver.cpp SharedSolver.cpp
Tab.cpp Tab.cpp
: :
liblinprog.a be $(TARGET_LIBSTDC++) [ MultiArchDefaultGristFiles liblinprog.a ]
be $(TARGET_LIBSTDC++)
; ;
}
}
+6 -1
View File
@@ -6,7 +6,10 @@ UseLibraryHeaders fluidsynth ;
SubDirCcFlags -DHAVE_CONFIG_H ; SubDirCcFlags -DHAVE_CONFIG_H ;
SharedLibrary libfluidsynth.so : local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libfluidsynth.so ] :
fluid_adriver.c fluid_adriver.c
fluid_aufile.c fluid_aufile.c
fluid_chan.c fluid_chan.c
@@ -34,6 +37,8 @@ SharedLibrary libfluidsynth.so :
fluid_tuning.c fluid_tuning.c
fluid_voice.c fluid_voice.c
; ;
}
}
# // for testing purpose # // for testing purpose
#StdBinCommands fluidsynth.c : libfluidsynth.so ; #StdBinCommands fluidsynth.c : libfluidsynth.so ;
+6 -1
View File
@@ -3,6 +3,11 @@ SubDir HAIKU_TOP src libs gnu ;
UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility gnu ] : true ; UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility gnu ] : true ;
UsePrivateHeaders shared ; UsePrivateHeaders shared ;
SharedLibrary libgnu.so : local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
SharedLibrary [ MultiArchDefaultGristFiles libgnu.so ] :
xattr.cpp xattr.cpp
; ;
}
}
+10 -3
View File
@@ -5,9 +5,14 @@ AddSubDirSupportedPlatforms libbe_test ;
UseLibraryHeaders iconv ; UseLibraryHeaders iconv ;
local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
local architecture = $(TARGET_PACKAGING_ARCH) ;
# disable warnings we don't want here # disable warnings we don't want here
TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) TARGET_WARNING_CCFLAGS_$(architecture)
= [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) = [ FFilter $(TARGET_WARNING_CCFLAGS_$(architecture))
: -Wmissing-prototypes -Wsign-compare ] ; : -Wmissing-prototypes -Wsign-compare ] ;
SubDirCcFlags SubDirCcFlags
@@ -15,7 +20,9 @@ SubDirCcFlags
-DICONV_CONST="" -DICONV_CONST=""
; ;
StaticLibrary libiconv.a : StaticLibrary [ MultiArchDefaultGristFiles libiconv.a ] :
iconv.c iconv.c
localcharset.c localcharset.c
; ;
}
}
+6 -2
View File
@@ -6,7 +6,10 @@ UseLibraryHeaders linprog ;
UsePrivateHeaders shared ; UsePrivateHeaders shared ;
StaticLibrary liblinprog.a : local architectureObject ;
for architectureObject in [ MultiArchSubDirSetup ] {
on $(architectureObject) {
StaticLibrary [ MultiArchDefaultGristFiles liblinprog.a ] :
ActiveSetSolver.cpp ActiveSetSolver.cpp
Constraint.cpp Constraint.cpp
LayoutOptimizer.cpp LayoutOptimizer.cpp
@@ -14,4 +17,5 @@ StaticLibrary liblinprog.a :
Summand.cpp Summand.cpp
Variable.cpp Variable.cpp
; ;
}
}