This is a substantial reorganization, This particular commit enables: - building the progs for unices platforms - glew is now built as a shared library (it is the default, and it is inconvenient and pointless to shift away from that default) - all progs get built by defaulttags/7.8-rc1
@@ -177,7 +177,7 @@ if env['platform'] != common.default_platform: | |||
SConscript( | |||
'src/glsl/SConscript', | |||
variant_dir = env['build'] + '/host', | |||
variant_dir = os.path.join(env['build'], 'host'), | |||
duplicate = 0, # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html | |||
exports={'env':host_env}, | |||
) | |||
@@ -187,3 +187,9 @@ SConscript( | |||
variant_dir = env['build'], | |||
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html | |||
) | |||
SConscript( | |||
'progs/SConscript', | |||
variant_dir = os.path.join('progs', env['build']), | |||
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html | |||
) |
@@ -351,20 +351,11 @@ example linux or windows, <i>machine</i> is x86 or x86_64, optionally followed | |||
by -debug for debug builds. | |||
</p> | |||
<p> | |||
The sample programs are built seperately. To build them do | |||
<pre> | |||
scons -C progs | |||
</pre> | |||
And the build output will be placed in progs/build/... | |||
</p> | |||
<p> | |||
To build Mesa with SCons for Windows on Linux using the MinGW crosscompiler toolchain do | |||
</p> | |||
<pre> | |||
scons platform=windows toolchain=crossmingw machine=x86 statetrackers=mesa drivers=softpipe,trace winsys=gdi | |||
scons -C progs platform=windows toolchain=crossmingw machine=x86 -k | |||
</pre> | |||
<p> | |||
This will create: |
@@ -1,5 +1,43 @@ | |||
SConscript([ | |||
'util/SConscript', | |||
]) | |||
Import('*') | |||
progs_env = env.Clone() | |||
if progs_env['platform'] == 'windows': | |||
progs_env.Append(CPPDEFINES = ['NOMINMAX']) | |||
progs_env.Prepend(LIBS = [ | |||
'winmm', | |||
'kernel32', | |||
'user32', | |||
'gdi32', | |||
]) | |||
# OpenGL | |||
if progs_env['platform'] == 'windows': | |||
progs_env.Prepend(LIBS = ['glu32', 'opengl32']) | |||
else: | |||
progs_env.Prepend(LIBS = ['GLU', 'GL']) | |||
# Glut | |||
progs_env.Prepend(LIBS = [glut]) | |||
# GLEW | |||
progs_env.Prepend(LIBS = [glew]) | |||
progs_env.Prepend(CPPPATH = [ | |||
'#progs/util', | |||
]) | |||
progs_env.Prepend(LIBS = [ | |||
util, | |||
]) | |||
Export('progs_env') | |||
SConscript([ | |||
'demos/SConscript', | |||
'glsl/SConscript', | |||
'redbook/SConscript', |
@@ -1,65 +0,0 @@ | |||
import os | |||
import os.path | |||
import sys | |||
env = Environment( | |||
tools = ['generic'], | |||
toolpath = ['../scons'], | |||
ENV = os.environ, | |||
) | |||
# Use Mesa's headers and libs | |||
if 1: | |||
build_topdir = 'build' | |||
build_subdir = env['platform'] | |||
if env['machine'] != 'generic': | |||
build_subdir += '-' + env['machine'] | |||
if env['debug']: | |||
build_subdir += "-debug" | |||
if env['profile']: | |||
build_subdir += "-profile" | |||
build_dir = os.path.join(build_topdir, build_subdir) | |||
env.Append(CPPDEFINES = ['GLEW_STATIC']) | |||
env.Append(CPPPATH = ['#../include']) | |||
env.Append(LIBPATH = [ | |||
'#../' + build_dir + '/glew/', | |||
'#../' + build_dir + '/glut/glx', | |||
]) | |||
conf = Configure(env) | |||
# OpenGL | |||
if env['platform'] == 'windows': | |||
env.Prepend(LIBS = ['glu32', 'opengl32']) | |||
else: | |||
env.Prepend(LIBS = ['GLU', 'GL']) | |||
# Glut | |||
env['GLUT'] = False | |||
if conf.CheckCHeader('GL/glut.h'): | |||
if env['platform'] == 'windows': | |||
env['GLUT_LIB'] = 'glut32' | |||
else: | |||
env['GLUT_LIB'] = 'glut' | |||
env['GLUT'] = True | |||
# GLEW | |||
env['GLEW'] = False | |||
if conf.CheckCHeader('GL/glew.h'): | |||
env['GLEW_LIB'] = 'glew' | |||
env['GLEW'] = True | |||
env.Prepend(LIBS = ['glew']) | |||
conf.Finish() | |||
Export('env') | |||
SConscript( | |||
'SConscript', | |||
build_dir = env['build'], | |||
duplicate = 0 # http://www.scons.org/doc/0.97/HTML/scons-user/x2261.html | |||
) |
@@ -1,84 +1,66 @@ | |||
Import('*') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(CPPPATH = [ | |||
'../util', | |||
]) | |||
env.Prepend(LIBS = [ | |||
util, | |||
'$GLUT_LIB' | |||
]) | |||
if env['platform'] == 'windows': | |||
env.Append(CPPDEFINES = ['NOMINMAX']) | |||
env.Prepend(LIBS = ['winmm']) | |||
progs = [ | |||
'arbfplight', | |||
'arbfslight', | |||
'arbocclude', | |||
'bounce', | |||
'clearspd', | |||
'copypix', | |||
'cubemap', | |||
'drawpix', | |||
'engine', | |||
'fbo_firecube', | |||
'fire', | |||
'fogcoord', | |||
'fplight', | |||
'fslight', | |||
'gamma', | |||
'gearbox', | |||
'gears', | |||
'geartrain', | |||
'glinfo', | |||
'gloss', | |||
'gltestperf', | |||
'ipers', | |||
'isosurf', | |||
'lodbias', | |||
'morph3d', | |||
'multiarb', | |||
'paltex', | |||
'pointblast', | |||
'ray', | |||
'readpix', | |||
'reflect', | |||
'renormal', | |||
'shadowtex', | |||
'singlebuffer', | |||
'spectex', | |||
'spriteblast', | |||
'stex3d', | |||
'teapot', | |||
'terrain', | |||
'tessdemo', | |||
'texcyl', | |||
'texenv', | |||
'textures', | |||
'trispd', | |||
'tunnel', | |||
'tunnel2', | |||
'vao_demo', | |||
'winpos', | |||
'dinoshade', | |||
'fbotexture', | |||
'projtex', | |||
'arbfplight', | |||
'arbfslight', | |||
'arbocclude', | |||
'bounce', | |||
'clearspd', | |||
'copypix', | |||
'cubemap', | |||
'drawpix', | |||
'engine', | |||
'fbo_firecube', | |||
'fire', | |||
'fogcoord', | |||
'fplight', | |||
'fslight', | |||
'gamma', | |||
'gearbox', | |||
'gears', | |||
'geartrain', | |||
'glinfo', | |||
'gloss', | |||
'gltestperf', | |||
'ipers', | |||
'isosurf', | |||
'lodbias', | |||
'morph3d', | |||
'multiarb', | |||
'paltex', | |||
'pointblast', | |||
'ray', | |||
'readpix', | |||
'reflect', | |||
'renormal', | |||
'shadowtex', | |||
'singlebuffer', | |||
'spectex', | |||
'spriteblast', | |||
'stex3d', | |||
'teapot', | |||
'terrain', | |||
'tessdemo', | |||
'texcyl', | |||
'texenv', | |||
'textures', | |||
'trispd', | |||
'tunnel', | |||
'tunnel2', | |||
'vao_demo', | |||
'winpos', | |||
'dinoshade', | |||
'fbotexture', | |||
'projtex', | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = prog + '.c', | |||
) | |||
env.Program( | |||
progs_env.Program( | |||
target = 'rain', | |||
source = [ | |||
'rain.cxx', |
@@ -1,15 +1,4 @@ | |||
Import('env') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(CPPPATH = [ | |||
'../util', | |||
]) | |||
env.Prepend(LIBS = ['$GLUT_LIB']) | |||
Import('*') | |||
progs = [ | |||
'fp-tri', | |||
@@ -24,7 +13,7 @@ progs = [ | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = [prog + '.c'], | |||
) |
@@ -1,23 +1,5 @@ | |||
Import('*') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(CPPPATH = [ | |||
'../util', | |||
]) | |||
env.Prepend(LIBS = [ | |||
util, | |||
'$GLUT_LIB' | |||
]) | |||
if env['platform'] == 'windows': | |||
env.Append(CPPDEFINES = ['NOMINMAX']) | |||
env.Prepend(LIBS = ['winmm']) | |||
progs = [ | |||
'array', | |||
'bitmap', | |||
@@ -48,7 +30,7 @@ progs = [ | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = prog + '.c', | |||
) |
@@ -1,11 +1,4 @@ | |||
Import('env') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(LIBS = ['$GLUT_LIB']) | |||
Import('*') | |||
progs = [ | |||
'copytex', | |||
@@ -21,7 +14,7 @@ progs = [ | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = [ | |||
prog + '.c', |
@@ -1,23 +1,5 @@ | |||
Import('*') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(CPPPATH = [ | |||
'../util', | |||
]) | |||
env.Prepend(LIBS = [ | |||
util, | |||
'$GLUT_LIB' | |||
]) | |||
if env['platform'] == 'windows': | |||
env.Append(CPPDEFINES = ['NOMINMAX']) | |||
env.Prepend(LIBS = ['winmm']) | |||
progs = [ | |||
'aaindex', | |||
'aapoly', | |||
@@ -85,7 +67,7 @@ progs = [ | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = prog + '.c', | |||
) |
@@ -1,23 +1,5 @@ | |||
Import('*') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(CPPPATH = [ | |||
'../util', | |||
]) | |||
env.Prepend(LIBS = [ | |||
util, | |||
'$GLUT_LIB' | |||
]) | |||
if env['platform'] == 'windows': | |||
env.Append(CPPDEFINES = ['NOMINMAX']) | |||
env.Prepend(LIBS = ['winmm']) | |||
progs = [ | |||
'accum', | |||
'bitmap1', | |||
@@ -52,7 +34,7 @@ progs = [ | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = prog + '.c', | |||
) |
@@ -1,23 +1,5 @@ | |||
Import('*') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(CPPPATH = [ | |||
'../util', | |||
]) | |||
env.Prepend(LIBS = [ | |||
util, | |||
'$GLUT_LIB' | |||
]) | |||
if env['platform'] == 'windows': | |||
env.Append(CPPDEFINES = ['NOMINMAX']) | |||
env.Prepend(LIBS = ['winmm']) | |||
linux_progs = [ | |||
'api_speed', | |||
] | |||
@@ -140,7 +122,7 @@ progs = [ | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = prog + '.c', | |||
) |
@@ -1,11 +1,4 @@ | |||
Import('env') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(LIBS = ['$GLUT_LIB']) | |||
Import('*') | |||
progs = [ | |||
'clear-fbo-tex', | |||
@@ -154,7 +147,7 @@ progs = [ | |||
] | |||
for prog in progs: | |||
prog = env.Program( | |||
prog = progs_env.Program( | |||
target = prog, | |||
source = prog + '.c', | |||
) |
@@ -1,13 +1,6 @@ | |||
Import('env') | |||
Import('*') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(LIBS = ['$GLUT_LIB']) | |||
env.Program( | |||
progs_env.Program( | |||
target = 'vp-tris', | |||
source = ['vp-tris.c'], | |||
) |
@@ -1,13 +1,6 @@ | |||
Import('env') | |||
Import('*') | |||
if not env['GLUT']: | |||
Return() | |||
env = env.Clone() | |||
env.Prepend(LIBS = ['$GLUT_LIB']) | |||
env.Program( | |||
progs_env.Program( | |||
target = 'vp-tris', | |||
source = ['vp-tris.c'], | |||
) |
@@ -1,25 +1,17 @@ | |||
Import('*') | |||
if env['platform'] != 'windows': | |||
if progs_env['platform'] != 'windows': | |||
Return() | |||
env = env.Clone() | |||
env.Append(LIBS = [ | |||
'kernel32', | |||
'user32', | |||
'gdi32', | |||
]) | |||
progs = [ | |||
'sharedtex_mt', | |||
'wglthreads', | |||
] | |||
for prog in progs: | |||
env.Program( | |||
progs_env.Program( | |||
target = prog, | |||
source = prog + '/' + prog + '.c', | |||
) | |||
env.Program('wglinfo', ['wglinfo.c']) | |||
progs_env.Program('wglinfo', ['wglinfo.c']) |
@@ -7,7 +7,7 @@ env = env.Clone() | |||
env.Append(CPPDEFINES = [ | |||
'GLEW_BUILD', | |||
'GLEW_STATIC', | |||
#'GLEW_STATIC', | |||
#'GLEW_MX', # Multiple Rendering Contexts support | |||
]) | |||
@@ -15,15 +15,6 @@ env.PrependUnique(CPPPATH = [ | |||
'#/include', | |||
]) | |||
glew = env.StaticLibrary( | |||
target = 'glew', | |||
source = [ | |||
'glew.c', | |||
], | |||
) | |||
env = env.Clone() | |||
if env['platform'] == 'windows': | |||
env.PrependUnique(LIBS = [ | |||
'glu32', | |||
@@ -37,6 +28,24 @@ else: | |||
'GL', | |||
'X11', | |||
]) | |||
if env['platform'] == 'windows': | |||
target = 'glew' | |||
else: | |||
target = 'GLEW' | |||
glew = env.SharedLibrary( | |||
target = target, | |||
source = [ | |||
'glew.c', | |||
], | |||
) | |||
if env['platform'] == 'windows': | |||
glew = env.FindIxes(glew, 'LIBPREFIX', 'LIBSUFFIX') | |||
env = env.Clone() | |||
env.Prepend(LIBS = [glew]) | |||
env.Program( | |||
@@ -48,3 +57,5 @@ env.Program( | |||
target = 'visualinfo', | |||
source = ['visualinfo.c'], | |||
) | |||
Export('glew') |
@@ -2,11 +2,6 @@ Import('*') | |||
env = env.Clone() | |||
if env['platform'] != 'windows': | |||
Return() | |||
target = 'glut32' | |||
env.Replace(CPPDEFINES = [ | |||
'BUILD_GLUT32', | |||
'GLUT_BUILDING_LIB', | |||
@@ -18,14 +13,6 @@ env.AppendUnique(CPPPATH = [ | |||
'#/include', | |||
]) | |||
env.PrependUnique(LIBS = [ | |||
'winmm', | |||
'gdi32', | |||
'user32', | |||
'opengl32', | |||
'glu32', | |||
]) | |||
sources = [ | |||
'glut_bitmap.c', | |||
'glut_bwidth.c', | |||
@@ -61,12 +48,6 @@ sources = [ | |||
'glut_warp.c', | |||
'glut_win.c', | |||
'glut_winmisc.c', | |||
'win32_glx.c', | |||
'win32_menu.c', | |||
'win32_util.c', | |||
'win32_winproc.c', | |||
'win32_x11.c', | |||
'glut_8x13.c', | |||
'glut_9x15.c', | |||
@@ -77,11 +58,52 @@ sources = [ | |||
'glut_roman.c', | |||
'glut_tr10.c', | |||
'glut_tr24.c', | |||
'glut.def', | |||
] | |||
env.SharedLibrary( | |||
if env['platform'] == 'windows': | |||
env.PrependUnique(LIBS = [ | |||
'winmm', | |||
'gdi32', | |||
'user32', | |||
'opengl32', | |||
'glu32', | |||
]) | |||
target = 'glut32' | |||
sources += [ | |||
'win32_glx.c', | |||
'win32_menu.c', | |||
'win32_util.c', | |||
'win32_winproc.c', | |||
'win32_x11.c', | |||
'glut.def', | |||
] | |||
else: | |||
env.PrependUnique(LIBS = [ | |||
'GLU', | |||
'GL', | |||
'X11', | |||
'Xext', | |||
'Xmu', | |||
'Xi', | |||
]) | |||
target = 'glut' | |||
sources += [ | |||
'glut_fcb.c', | |||
'glut_menu.c', | |||
'glut_menu2.c', | |||
'glut_glxext.c', | |||
'layerutil.c', | |||
] | |||
glut = env.SharedLibrary( | |||
target = target, | |||
source = sources, | |||
) | |||
env.InstallSharedLibrary(glut, version=(3, 7, 1)) | |||
if env['platform'] == 'windows': | |||
glut = env.FindIxes(glut, 'LIBPREFIX', 'LIBSUFFIX') | |||
Export('glut') |