Use libbe_build also on Haiku

This means the build tools will no longer be built against the host
platform's libbe, which avoids compatibility problems -- e.g. an
older Haiku host libbe may not have certain features the build tools
require -- and also makes the build behave more similiar on Haiku and
other platforms. The host libroot dependency still remains and is not
easy to get rid of.

Also remove some bits of BeOS/Dano/Zeta build support.
This commit is contained in:
Ingo Weinhold
2013-05-09 18:08:55 +02:00
parent 0c53204ecc
commit 204dee708a
14 changed files with 52 additions and 131 deletions
+3 -37
View File
@@ -1,6 +1,5 @@
SubDir HAIKU_TOP src tools ;
UseHeaders [ FDirName $(HAIKU_TOP) headers build ] : true ;
UsePrivateBuildHeaders app storage ;
SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src/bin ] ;
@@ -22,16 +21,6 @@ local tools =
USES_BE_API on $(tools) = true ;
# TODO: temporary kludge
local libHaikuCompat ;
if $(HOST_PLATFORM) in r5 bone dano {
ObjectC++Flags database_support.cpp UpdateMimeInfoThread.cpp
MimeUpdateThread.cpp
: -include [ FDirName $(HAIKU_TOP) headers build
HaikuBuildCompatibility.h ] ;
libHaikuCompat = libhaikucompat_build.a ;
}
BuildPlatformMain <build>catattr : catattr.cpp : $(HOST_LIBBE) ;
UsePrivateObjectHeaders copyattr.cpp : shared : : true ;
@@ -55,34 +44,11 @@ BuildPlatformMain <build>generate_boot_screen :
BuildPlatformMain <build>listattr : listattr.cpp : $(HOST_LIBBE) ;
if $(HOST_PLATFORM_BEOS_COMPATIBLE) {
AddResources <build>mimeset : mimeset.rdef ;
}
local mimesetSources =
mimeset.cpp
# Mime.cpp
# UpdateMimeInfoThread.cpp
# MimeUpdateThread.cpp
;
if $(HOST_PLATFORM) = haiku_host {
mimesetSources += AppFileInfo.cpp ;
}
BuildPlatformMain <build>mimeset :
$(mimesetSources)
: $(HOST_LIBBE) $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) $(libHaikuCompat)
mimeset.cpp
: $(HOST_LIBBE) $(HOST_LIBSTDC++) $(HOST_LIBSUPC++)
;
if $(HOST_PLATFORM_BEOS_COMPATIBLE) {
SEARCH on [ FGristFiles AppFileInfo.cpp ]
= [ FDirName $(HAIKU_TOP) src build libbe storage ] ;
SourceSysHdrs AppFileInfo.cpp UpdateMimeInfoThread.cpp
: [ FDirName $(HAIKU_TOP) headers build os storage ] ;
}
BuildPlatformMain <build>mkindex : mkindex.cpp : $(HOST_LIBBE) ;
BuildPlatformMain <build>rm_attrs_tmp : rm_attrs.cpp
@@ -101,7 +67,7 @@ BuildPlatformMain <build>settype : settype.cpp : $(HOST_LIBBE)
$(HOST_LIBSTDC++) $(HOST_LIBSUPC++) ;
BuildPlatformMain <build>setversion : setversion.cpp : $(HOST_LIBBE)
$(HOST_LIBSTDC++) $(HOST_LIBSUPC++) $(libHaikuCompat) ;
$(HOST_LIBSTDC++) $(HOST_LIBSUPC++) ;
BuildPlatformMain <build>xres : xres.cpp : $(HOST_LIBBE) $(HOST_LIBSTDC++)
$(HOST_LIBSUPC++) ;
-10
View File
@@ -1,6 +1,5 @@
SubDir HAIKU_TOP src tools keymap ;
UseHeaders [ FDirName $(HAIKU_TOP) headers build ] : true ;
UsePrivateBuildHeaders shared storage ;
SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src bin keymap ] ;
@@ -8,23 +7,17 @@ SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src bin keymap ] ;
USES_BE_API on <build>keymap = true ;
local regexSources ;
local storageSources ;
if $(HOST_PLATFORM) = cygwin || $(HOST_PLATFORM) = sunos {
UseHeaders [ FDirName $(HAIKU_TOP) src system libroot posix glibc regex ] ;
SubDirCcFlags -D__USE_GNU -DHAVE_STDBOOL_H ;
regexSources = regex.c ;
}
if $(HOST_PLATFORM) = haiku_host {
# those are missing from early Haiku builds
storageSources = FileIO.cpp ;
}
BuildPlatformMain <build>keymap :
main.cpp
Keymap.cpp
$(regexSources)
$(storageSources)
: libshared_build.a $(HOST_LIBSTDC++) $(HOST_LIBSUPC++)
;
@@ -32,6 +25,3 @@ LinkAgainst <build>keymap : $(HOST_LIBBE) ;
SEARCH on [ FGristFiles $(regexSources) ]
= [ FDirName $(HAIKU_TOP) src system libroot posix glibc regex ] ;
SEARCH on [ FGristFiles $(storageSources) ]
= [ FDirName $(HAIKU_TOP) src kits storage ] ;
-8
View File
@@ -1,13 +1,5 @@
SubDir HAIKU_TOP src tools package ;
# TODO: Hack to make things build on Haiku. The right solution is to build
# libbe_build and friends on Haiku as well and use the exact same build
# environment as on other systems.
if $(HOST_PLATFORM) = haiku_host {
UseHeaders [ FDirName $(HAIKU_TOP) headers build ] : true ;
UseHeaders [ FDirName $(HAIKU_TOP) headers build os ] : true ;
}
UsePrivateBuildHeaders shared kernel ;
SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src bin package ] ;
-10
View File
@@ -15,19 +15,9 @@ SubDirC++Flags -include $(r5Compatibility) ;
BuildPlatformStaticLibrary <build>librdef.a :
compile.cpp decompile.cpp lexer.l parser.y rdef.cpp ;
# On BeOS incompatible platforms we implicitly link against libroot_build.so,
# which does already include the strl*() routines.
local strlSources ;
if $(HOST_PLATFORM_BEOS_COMPATIBLE) {
strlSources = strlcpy.c strlcat.c ;
}
BuildPlatformMain <build>rc :
rc.cpp
# these two are needed for R5 only
$(strlSources)
: <build>librdef.a $(HOST_LIBSTDC++) $(HOST_LIBBE) $(HOST_LIBSUPC++)
;