Added Haiku as host platform supported by the build system ("haiku_host").

Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21802 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2007-08-02 21:13:56 +00:00
parent 4389b7028c
commit da0f9ae040
37 changed files with 65 additions and 54 deletions

View File

@ -95,9 +95,10 @@ if $(JAM_TARGETS) {
HAIKU_DEBUG_LEVELS = 0 1 2 3 4 5 ;
# BeOS, BONE, Dan0 compatible platforms
HAIKU_BEOS_COMPATIBLE_PLATFORMS = haiku r5 bone dano ;
HAIKU_BONE_COMPATIBLE_PLATFORMS = haiku bone dano ;
HAIKU_DANO_COMPATIBLE_PLATFORMS = haiku dano ;
HAIKU_BEOS_COMPATIBLE_PLATFORMS = haiku r5 bone dano haiku_host ;
HAIKU_BONE_COMPATIBLE_PLATFORMS = haiku bone dano haiku_host ;
HAIKU_DANO_COMPATIBLE_PLATFORMS = haiku dano haiku_host ;
HAIKU_HAIKU_COMPATIBLE_PLATFORMS = haiku haiku_host ;
#pragma mark -
@ -436,6 +437,7 @@ HOST_KERNEL_WARNING_C++FLAGS = -Wall ;
# debug flags
switch $(HOST_PLATFORM) {
case haiku : HOST_DEBUG_FLAGS ?= -ggdb ;
case haiku_host : HOST_DEBUG_FLAGS ?= -ggdb ;
case linux : HOST_DEBUG_FLAGS ?= -ggdb ;
case freebsd : HOST_DEBUG_FLAGS ?= -ggdb ;
case darwin : HOST_DEBUG_FLAGS ?= -ggdb ;
@ -582,7 +584,7 @@ if $(TARGET_PLATFORM) != haiku {
}
# TODO: Fix the naming!
if $(TARGET_PLATFORM) = haiku {
if $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
NETWORK_LIBS = network ;
SELECT_UNAME_ETC_LIB = root ;
NETAPI_LIB = network ;
@ -674,6 +676,7 @@ switch $(TARGET_PLATFORM) {
case r5 : TARGET_DEFINES += HAIKU_TARGET_PLATFORM_BEOS ;
case bone : TARGET_DEFINES += HAIKU_TARGET_PLATFORM_BONE ;
case dano : TARGET_DEFINES += HAIKU_TARGET_PLATFORM_DANO ;
case haiku_host : TARGET_DEFINES += HAIKU_TARGET_PLATFORM_HAIKU ;
case haiku : TARGET_DEFINES += HAIKU_TARGET_PLATFORM_HAIKU ;
case linux : TARGET_DEFINES += HAIKU_TARGET_PLATFORM_LINUX ;
case freebsd : TARGET_DEFINES += HAIKU_TARGET_PLATFORM_FREEBSD ;
@ -686,7 +689,7 @@ switch $(HOST_PLATFORM) {
case r5 : HOST_DEFINES += HAIKU_HOST_PLATFORM_BEOS ;
case bone : HOST_DEFINES += HAIKU_HOST_PLATFORM_BONE ;
case dano : HOST_DEFINES += HAIKU_HOST_PLATFORM_DANO ;
case haiku : HOST_DEFINES += HAIKU_HOST_PLATFORM_HAIKU ;
case haiku_host : HOST_DEFINES += HAIKU_HOST_PLATFORM_HAIKU ;
case linux : HOST_DEFINES += HAIKU_HOST_PLATFORM_LINUX ;
case freebsd : HOST_DEFINES += HAIKU_HOST_PLATFORM_FREEBSD ;
case darwin : HOST_DEFINES += HAIKU_HOST_PLATFORM_DARWIN ;
@ -699,7 +702,7 @@ switch $(HOST_PLATFORM) {
# include the HaikuBuildCompatibility.h header and link against
# libhaikucompat.a.
if $(TARGET_PLATFORM) != haiku && $(TARGET_PLATFORM_BEOS_COMPATIBLE) {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) && $(TARGET_PLATFORM_BEOS_COMPATIBLE) {
# headers and flags
local compatibilityHeader = -include [ FDirName $(HAIKU_TOP) headers build
HaikuBuildCompatibility.h ] ;

View File

@ -156,22 +156,27 @@ rule SetPlatformCompatibilityFlagVariables
{
$(varPrefix)_PLATFORM_BEOS_COMPATIBLE = true ;
}
case bone :
{
$(varPrefix)_PLATFORM_BONE_COMPATIBLE = true ;
}
case dano :
{
$(varPrefix)_PLATFORM_DANO_COMPATIBLE = true ;
}
case haiku_host :
{
$(varPrefix)_PLATFORM_HAIKU_COMPATIBLE = true ;
}
case haiku :
{
$(varPrefix)_PLATFORM_HAIKU_COMPATIBLE = true ;
}
case * :
{
if ! ( $(platform) in $(otherPlatforms) ) {
@ -181,6 +186,8 @@ rule SetPlatformCompatibilityFlagVariables
}
# set lesser flags, e.g. "DANO" for "HAIKU" and "BEOS" for "BONE"
$(varPrefix)_PLATFORM_HAIKU_COMPATIBLE
?= $($(varPrefix)_PLATFORM_HAIKU_COMPATIBLE) ;
$(varPrefix)_PLATFORM_DANO_COMPATIBLE
?= $($(varPrefix)_PLATFORM_HAIKU_COMPATIBLE) ;
$(varPrefix)_PLATFORM_BONE_COMPATIBLE
@ -191,6 +198,8 @@ rule SetPlatformCompatibilityFlagVariables
# set the machine friendly flags
$(varPrefix)_PLATFORM_(haiku)_COMPATIBLE
?= $($(varPrefix)_PLATFORM_HAIKU_COMPATIBLE) ;
$(varPrefix)_PLATFORM_(haiku_host)_COMPATIBLE
?= $($(varPrefix)_PLATFORM_HAIKU_COMPATIBLE) ;
$(varPrefix)_PLATFORM_(dano)_COMPATIBLE
?= $($(varPrefix)_PLATFORM_DANO_COMPATIBLE) ;
$(varPrefix)_PLATFORM_(bone)_COMPATIBLE

View File

@ -93,6 +93,10 @@ rule KernelAddon
kernel = <nogrist>kernel.so ;
beginGlue = $(HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE) ;
endGlue = $(HAIKU_KERNEL_ADDON_END_GLUE_CODE) ;
} else if $(PLATFORM) = haiku_host {
kernel = /boot/develop/lib/x86/kernel.so ;
beginGlue = $(HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE) ;
endGlue = $(HAIKU_KERNEL_ADDON_END_GLUE_CODE) ;
} else {
kernel = /boot/develop/lib/x86/_KERNEL_ ;
}

5
configure vendored
View File

@ -290,9 +290,10 @@ case "${platform}" in
exit 1 ;;
esac
;;
Linux) buildPlatform=linux ;;
FreeBSD) buildPlatform=freebsd ;;
Darwin) buildPlatform=darwin ;;
FreeBSD) buildPlatform=freebsd ;;
Haiku) buildPlatform=haiku_host ;;
Linux) buildPlatform=linux ;;
*) echo Unsupported platform: ${platform}
exit 1 ;;
esac

View File

@ -11,7 +11,7 @@ KernelAddon vmware :
device.c
;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
LinkAgainst vmware : $(TARGET_HAIKU_COMPATIBILITY_LIBS) ;
}

View File

@ -6,7 +6,7 @@ SubDirSysHdrs $(HAIKU_TOP) headers os drivers ;
UsePrivateHeaders [ FDirName kernel util ] input ;
local buffer_impl = ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
buffer_impl = ring_buffer.cpp ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src add-ons kernel drivers network stack ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if ( $(TARGET_PLATFORM) != haiku ) {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FStandardOSHeaders ] : true ;
# Needed for <drivers/Select.h> and maybe other stuff.
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src add-ons media media-add-ons esound_sink ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
SubDirC++Flags -fmultiple-symbol-spaces ;
}

View File

@ -4,7 +4,7 @@ SetSubDirSupportedPlatformsBeOSCompatible ;
UsePrivateHeaders media ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
SubDirC++Flags -fmultiple-symbol-spaces ;
}

View File

@ -6,7 +6,7 @@ SetSubDirSupportedPlatformsBeOSCompatible ;
UseLibraryHeaders usb ;
# Zeta has a libusb.so, we have a USBKit.a
if $(TARGET_PLATFORM) = haiku {
if $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
usbKitLibraryName = USBKit.a ;
} else {
usbKitLibraryName = usb ;

View File

@ -6,7 +6,7 @@ UsePrivateHeaders shared ;
UseLibraryHeaders agg icon ;
local icon_libs ;
if $(TARGET) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
icon_libs = libicon.a libagg.a ;
}

View File

@ -3,7 +3,7 @@ SubDir HAIKU_TOP src apps pulse ;
SetSubDirSupportedPlatformsBeOSCompatible ;
UsePrivateHeaders shared ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers os kernel ] : true ;
}

View File

@ -6,7 +6,7 @@ UsePrivateHeaders shared interface ;
local columnViewSources ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
columnViewSources = ColumnListView.cpp ColumnTypes.cpp ColorTools.cpp ;
}

View File

@ -3,7 +3,7 @@ SubDir HAIKU_TOP src apps stylededit ;
SetSubDirSupportedPlatformsBeOSCompatible ;
UsePrivateHeaders textencoding ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers os support ] : true ;
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin bash lib glob ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin bash lib readline ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin bash lib sh ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin desklink ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers os interface ] : true ;
# We need the public interface headers also when not compiling for Haiku.
UseHeaders [ FDirName $(HAIKU_TOP) headers os ] : true ;

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin network arp ;
SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin network ftp ;
SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src bin network ifconfig ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin network nc ;
SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin network ping ;
SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin ppp_up ;
SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin pppconfig ;
SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -1,6 +1,6 @@
SubDir HAIKU_TOP src bin network route ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src bin network traceroute ;
SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# We need the public network headers also when not compiling for Haiku.
# Unfortunately we get more than we want, namely all POSIX headers.

View File

@ -2,11 +2,11 @@ SubDir HAIKU_TOP src bin pcmcia-cs ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
UseHeaders [ FDirName $(HAIKU_TOP) headers os drivers ] : true ;
# We need the public pcmcia headers also when not compiling for Haiku.
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
UseHeaders [ FDirName $(HAIKU_TOP) headers os drivers ] : true ;
# We need the public pcmcia headers also when not compiling for Haiku.
UseHeaders [ FDirName $(HAIKU_TOP) headers os support ] : true ;
# We need Errors.h also when not compiling for Haiku.
# We need Errors.h also when not compiling for Haiku.
}
StdBinCommands

View File

@ -1,12 +1,6 @@
SubDir HAIKU_TOP src kits support ;
SetSubDirSupportedPlatforms haiku libbe_test ;
#if $(TARGET_PLATFORM) != haiku {
# UseHeaders [ FStandardOSHeaders ] : true ;
# UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
# # TODO: POSIX headers shouldn't be used. Needed for strlcpy() and
# # addr_t.
#}
UsePrivateHeaders shared app media ;

View File

@ -6,7 +6,7 @@ AddSubDirSupportedPlatforms libbe_test ;
UsePrivateHeaders textencoding ;
SubDirSysHdrs [ FDirName $(SUBDIR) libiconv ] ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
# Argh! Just for <posix/iconv.h>.
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
}

View File

@ -20,7 +20,7 @@ SubDirCcFlags
SubDirSysHdrs $(SUBDIR) ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
# Argh! Just for <posix/iconv.h>.
UseHeaders [ FDirName $(HAIKU_TOP) headers posix ] : true ;
}

View File

@ -18,7 +18,7 @@ SubDirC++Flags
;
local vector_icon_libs ;
if $(TARGET_PLATFORM) = haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
vector_icon_libs = libicon.a libagg.a ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src preferences keyboard ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
SubDirC++Flags -DCOMPILE_FOR_R5 ;
# SubDirC++Flags -fmultiple-symbol-spaces ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src preferences media ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
SubDirC++Flags -fmultiple-symbol-spaces ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src preferences sounds ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
SubDirC++Flags -fmultiple-symbol-spaces ;
}

View File

@ -2,7 +2,7 @@ SubDir HAIKU_TOP src preferences virtualmemory ;
SetSubDirSupportedPlatformsBeOSCompatible ;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
DRIVER_SETTINGS = driver_settings.c ;
}
@ -16,7 +16,7 @@ Preference VirtualMemory :
: VirtualMemory.rdef
;
if $(TARGET_PLATFORM) != haiku {
if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) {
SEARCH on [ FGristFiles driver_settings.c ] +=
[ FDirName $(HAIKU_TOP) src system libroot os ] ;
}

View File

@ -20,7 +20,7 @@ SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems bfs ] ;
}
local libHaikuCompat ;
if $(HOST_PLATFORM_BEOS_COMPATIBLE) && $(HOST_PLATFORM) != haiku {
if $(HOST_PLATFORM_BEOS_COMPATIBLE) && ! $(HOST_PLATFORM_HAIKU_COMPATIBLE) {
libHaikuCompat = libhaikucompat_build.a ;
}