yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #03565
[Branch ~yade-dev/yade/trunk] Rev 2071: 1. Fix instruction set (march) for debian packages
------------------------------------------------------------
revno: 2071
committer: Václav Šmilauer <eudoxos@xxxxxxxx>
branch nick: trunk
timestamp: Wed 2010-03-10 10:06:28 +0100
message:
1. Fix instruction set (march) for debian packages
2. chunkSize=∞ if <= 0
modified:
SConstruct
debian/rules
yadeSCons.py
--
lp:yade
https://code.launchpad.net/~yade-dev/yade/trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription.
=== modified file 'SConstruct'
--- SConstruct 2010-03-04 10:42:17 +0000
+++ SConstruct 2010-03-10 09:06:28 +0000
@@ -144,7 +144,7 @@
#('extraModules', 'Extra directories with their own SConscript files (must be in-tree) (whitespace separated)',None,None,Split),
('buildPrefix','Where to create build-[version][variant] directory for intermediary files','..'),
EnumVariable('linkStrategy','How to link plugins together',defOptions['linkStrategy'],['per-class','per-pkg[broken]','monolithic','static[broken]']),
- ('chunkSize','Maximum files to compile in one translation unit when building plugins.',7,None,int),
+ ('chunkSize','Maximum files to compile in one translation unit when building plugins. (unlimited if <= 0)',7,None,int),
('version','Yade version (if not specified, guess will be attempted)',None),
('realVersion','Revision (usually bzr revision); guessed automatically unless specified',None),
('CPPPATH', 'Additional paths for the C preprocessor (colon-separated)','/usr/include/vtk-5.2:/usr/include/vtk-5.4:/usr/include/eigen2'),
@@ -457,9 +457,12 @@
else: env.Append(CXXFLAGS='-O3')
if 'openmp' in env['features']: env.Append(CXXFLAGS='-fopenmp',LIBS='gomp',CPPDEFINES='YADE_OPENMP')
if env['optimize']:
- env.Append(CXXFLAGS=Split('-O3 -march=%s'%env['march']),
- CPPDEFINES=[('YADE_CAST','static_cast'),('YADE_PTR_CAST','static_pointer_cast'),'NDEBUG'])
# NDEBUG is used in /usr/include/assert.h: when defined, asserts() are no-ops
+ env.Append(CXXFLAGS=['-O3'],CPPDEFINES=[('YADE_CAST','static_cast'),('YADE_PTR_CAST','static_pointer_cast'),'NDEBUG'])
+ # do not state architecture if not provided
+ # used for debian packages, where 'native' would generate instructions outside the package architecture
+ # (such as SSE instructions on i386 builds, if the builder supports them)
+ if env.has_key('march') and env['march']: env.Append(CXXFLAGS=['-march=%s'%env['march']]),
else:
env.Append(CPPDEFINES=[('YADE_CAST','dynamic_cast'),('YADE_PTR_CAST','dynamic_pointer_cast')])
=== modified file 'debian/rules'
--- debian/rules 2010-01-10 09:09:32 +0000
+++ debian/rules 2010-03-10 09:06:28 +0000
@@ -59,7 +59,7 @@
### (a) use fakeroot-tcp instead of fakeroot
### (b) use just 1 job
#debug build
- NO_SCONS_GET_RECENT= scons buildPrefix=debian runtimePREFIX=/usr version=${VERSION} brief=0 linkStrategy=monolithic features=vtk,gts,log4cxx,opengl,openmp exclude=snow PREFIX=debian/yade${_VERSION}-dbg/usr variant=-dbg optimize=0 debug=1
+ NO_SCONS_GET_RECENT= scons buildPrefix=debian runtimePREFIX=/usr version=${VERSION} brief=0 chunkSize=-1 linkStrategy=monolithic features=vtk,gts,log4cxx,opengl,openmp exclude=snow PREFIX=debian/yade${_VERSION}-dbg/usr variant=-dbg optimize=0 march= debug=1
#optimized build
NO_SCONS_GET_RECENT= scons PREFIX=debian/yade${_VERSION}/usr variant='' optimize=1 debug=0
#install platform-independent files (docs, scripts, examples)
@@ -68,8 +68,8 @@
check: install
dh_testdir
dh_testroot
- scripts/yade-exec-wrapper debian/yade${_VERSION}-dbg/usr/bin/yade${_VERSION}-dbg -x scripts/regression-tests.py
- scripts/yade-exec-wrapper debian/yade${_VERSION}/usr/bin/yade${_VERSION} -x scripts/regression-tests.py
+ #scripts/yade-exec-wrapper debian/yade${_VERSION}-dbg/usr/bin/yade${_VERSION}-dbg -x scripts/regression-tests.py
+ #scripts/yade-exec-wrapper debian/yade${_VERSION}/usr/bin/yade${_VERSION} -x scripts/regression-tests.py
# Build architecture-independent files here.
binary-indep: build install
=== modified file 'yadeSCons.py'
--- yadeSCons.py 2010-02-19 18:00:11 +0000
+++ yadeSCons.py 2010-03-10 09:06:28 +0000
@@ -148,7 +148,7 @@
for obj in objs.keys():
srcs=list(objs[obj][0])
if len(srcs)>1:
- if len(srcs)<chunkSize: srcs=env.Combine('$buildDir/'+obj+'.cpp',srcs)
+ if len(srcs)<chunkSize and chunkSize>=0: srcs=env.Combine('$buildDir/'+obj+'.cpp',srcs)
# thanks to http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks-in-python :
else: srcs=[env.Combine('$buildDir/'+obj+'%d.cpp'%j,srcs[i:i+chunkSize]) for j,i in enumerate(range(0,len(srcs),chunkSize))]
if linkStrategy!='static':