[Mesa-dev] [PATCH] scons: Add Haiku build support

Alexander von Gluck kallisti5 at unixzen.com
Mon Jan 16 10:58:10 PST 2012


svga is close, however there is a type conflict.
Haiku defines uint32, uint8, etc by default... the svga gallium driver 
defines them as well.
I think it's as easy as removing the svga *int* typedefs under haiku... but 
haven't had the
bandwidth to test that yet.

llvm... well there is no llvm / clang in Haiku (yet) so it doesn't build :)

-- Alexander von Gluck

On 16.01.2012 12:53, Jose Fonseca wrote:
> Looks good.
>
> What's preventing src/gallium/drivers/llvmpipe and 
> src/gallium/drivers/svga from building on haiku? These pipe
> drivers should be fairly portable (unlike src/gallium/winsys  or 
> src/gallium/targets dirs).
>
> ----- Original Message -----
>>
>> Enables building stock Mesa under the Haiku operating system.
>> ---
>>   common.py              |    2 +-
>>   scons/gallium.py       |    2 ++
>>   src/SConscript         |    5 +++--
>>   src/gallium/SConscript |   14 ++++++++++----
>>   src/glu/sgi/SConscript |   16 +++++++++++-----
>>   5 files changed, 27 insertions(+), 12 deletions(-)
>>
>> diff --git a/common.py b/common.py
>> index 5578f72..2674f32 100644
>> --- a/common.py
>> +++ b/common.py
>> @@ -83,7 +83,7 @@ def AddOptions(opts):
>>   	opts.Add(EnumOption('machine', 'use machine-specific assembly
>>   	code',
>> default_machine,
>>   											 allowed_values=('generic', 'ppc', 'x86', 'x86_64')))
>>   	opts.Add(EnumOption('platform', 'target platform', host_platform,
>> -											 allowed_values=('linux', 'windows', 'darwin', 'cygwin',
>> 'sunos', 'freebsd8')))
>> +											 allowed_values=('linux', 'windows', 'darwin', 'cygwin',
>> 'sunos', 'freebsd8', 'haiku')))
>>   	opts.Add(BoolOption('embedded', 'embedded build', 'no'))
>>   	opts.Add('toolchain', 'compiler toolchain', default_toolchain)
>>   	opts.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES
>>   	support',
>> 'no'))
>> diff --git a/scons/gallium.py b/scons/gallium.py
>> index 221d184..5a0c6fe 100755
>> --- a/scons/gallium.py
>> +++ b/scons/gallium.py
>> @@ -289,6 +289,8 @@ def generate(env):
>>               cppdefines += ['_DEBUG']
>>       if platform == 'windows':
>>           cppdefines += ['PIPE_SUBSYSTEM_WINDOWS_USER']
>> +    if platform == 'haiku':
>> +        cppdefines += ['BEOS_THREADS']
>>       if env['embedded']:
>>           cppdefines += ['PIPE_SUBSYSTEM_EMBEDDED']
>>       env.Append(CPPDEFINES = cppdefines)
>> diff --git a/src/SConscript b/src/SConscript
>> index 0a30838..ba6be0b 100644
>> --- a/src/SConscript
>> +++ b/src/SConscript
>> @@ -22,10 +22,11 @@ SConscript('mesa/SConscript')
>>   SConscript('mapi/vgapi/SConscript')
>>
>>   if not env['embedded']:
>> -    if env['platform'] not in ['windows', 'darwin']:
>> +    if env['platform'] not in ['windows', 'darwin', 'haiku']:
>>           SConscript('glx/SConscript')
>> -    if env['platform'] not in ['darwin']:
>> +    if env['platform'] not in ['darwin', 'haiku']:
>>           SConscript('egl/main/SConscript')
>> +    if env['platform'] not in ['darwin']:
>>           SConscript('glu/sgi/SConscript')
>>
>>       if env['gles']:
>> diff --git a/src/gallium/SConscript b/src/gallium/SConscript
>> index 4f46506..8efd04c 100644
>> --- a/src/gallium/SConscript
>> +++ b/src/gallium/SConscript
>> @@ -10,16 +10,22 @@ SConscript('auxiliary/SConscript')
>>   # Drivers
>>   #
>>
>> +# These are common and work across all platforms
>>   SConscript([
>>       'drivers/galahad/SConscript',
>>       'drivers/identity/SConscript',
>> -    'drivers/llvmpipe/SConscript',
>>       'drivers/rbug/SConscript',
>>       'drivers/softpipe/SConscript',
>> -    'drivers/svga/SConscript',
>>       'drivers/trace/SConscript',
>>   ])
>>
>> +# These drivers do not build on Haiku
>> +if env['platform'] not in ['haiku']:
>> +    SConscript([
>> +        'drivers/llvmpipe/SConscript',
>> +        'drivers/svga/SConscript',
>> +    ])
>> +
>>   if not env['msvc']:
>>       # These drivers do not build on MSVC compilers
>>       SConscript([
>> @@ -53,7 +59,7 @@ SConscript('winsys/sw/null/SConscript')
>>
>>   if not env['embedded']:
>>       SConscript('state_trackers/vega/SConscript')
>> -    if env['platform'] not in ['darwin']:
>> +    if env['platform'] not in ['darwin', 'haiku']:
>>           SConscript('state_trackers/egl/SConscript')
>>
>>       if env['x11']:
>> @@ -83,7 +89,7 @@ SConscript([
>>   ])
>>
>>   if not env['embedded']:
>> -    if env['platform'] not in ['darwin']:
>> +    if env['platform'] not in ['darwin', 'haiku']:
>>           SConscript([
>>               'targets/egl-static/SConscript'
>>           ])
>> diff --git a/src/glu/sgi/SConscript b/src/glu/sgi/SConscript
>> index 94c7426..97405d8 100644
>> --- a/src/glu/sgi/SConscript
>> +++ b/src/glu/sgi/SConscript
>> @@ -122,12 +122,18 @@ else:
>>       ])
>>       target = 'glu'
>>
>> -glu = env.SharedLibrary(
>> -    target = target,
>> -    source = sources
>> -)
>> +if env['platform'] == 'haiku':
>> +    glu = env.StaticLibrary(
>> +        target = target,
>> +        source = sources
>> +    )
>> +else:
>> +    glu = env.SharedLibrary(
>> +        target = target,
>> +        source = sources
>> +    )
>> +    env.Alias('glu', env.InstallSharedLibrary(glu, version=(1, 3,
>> 0)))
>>
>> -env.Alias('glu', env.InstallSharedLibrary(glu, version=(1, 3, 0)))
>>
>>   if env['platform'] == 'windows':
>>       glu = env.FindIxes(glu, 'LIBPREFIX', 'LIBSUFFIX')
>> --
>> 1.7.7.2
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>



More information about the mesa-dev mailing list