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

Jose Fonseca jfonseca at vmware.com
Mon Jan 16 11:31:42 PST 2012


----- Original Message -----
> 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.

ok

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

If there's no llvm, then llvmpipe should never be built. That is, no need to go out of your way to skip llvmpipe build on Haiku.

Should I commit this for you?

Jose

> 
> -- 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