Author: eudoxos
Date: 2009-07-12 10:39:34 +0200 (Sun, 12 Jul 2009)
New Revision: 1858

Modified:
   trunk/SConstruct
   trunk/debian/control-template
Log:
1. Rename scons option arcs to PGO (profile=guided optimizations)
2. Install only binaries by default (no docs, must be requested from cmd line 
via path)


Modified: trunk/SConstruct
===================================================================
--- trunk/SConstruct    2009-07-12 08:21:25 UTC (rev 1857)
+++ trunk/SConstruct    2009-07-12 08:39:34 UTC (rev 1858)
@@ -127,7 +127,7 @@
        BoolVariable('optimize','Turn on heavy 
optimizations',defOptions['optimize']),
        BoolVariable('openmp','Compile with openMP parallelization 
support',defOptions['openmp']),
        ListVariable('exclude','Yade components that will not be 
built','none',names=['qt3','gui','extra','common','dem','fem','lattice','mass-spring','realtime-rigidbody','snow']),
-       EnumVariable('arcs','Whether to generate or use branch 
probabilities','',['','gen','use'],{'no':'','0':'','false':''},1),
+       EnumVariable('PGO','Whether to "gen"erate or "use" Profile-Guided 
Optimization','',['','gen','use'],{'no':'','0':'','false':''},1),
        # OK, dummy prevents bug in scons: if one selects all, it says all in 
scons.config, but without quotes, which generates error.
        ListVariable('features','Optional features that are turned 
on','python,log4cxx,openGL',names=['openGL','python','log4cxx','binfmt','CGAL','dummy','GTS']),
        ('jobs','Number of jobs to run at the same time (same as -j, but 
saved)',4,None,int),
@@ -276,14 +276,12 @@
                context.Result(False); return False
 def CheckScientificPython(context): return 
CheckPythonModule(context,"Scientific")
 def CheckIPython(context): return CheckPythonModule(context,"IPython")
-       
 def CheckCXX(context):
        context.Message('Checking whether c++ compiler "%s" 
works...'%env['CXX'])
        ret=context.TryLink('#include<iostream>\nint main(int argc, 
char**argv){std::cerr<<std::endl;return 0;}\n','.cpp')
        context.Result(ret)
        return ret
 
-
 if not env.GetOption('clean'):
        
conf=env.Configure(custom_tests={'CheckQt':CheckQt,'CheckCXX':CheckCXX,'CheckPython':CheckPython,'CheckScientificPython':CheckScientificPython,'CheckIPython':CheckIPython},
                
conf_dir='$buildDir/.sconf_temp',log_file='$buildDir/config.log')
@@ -419,8 +417,8 @@
 if env['gprof']: 
env.Append(CXXFLAGS=['-pg'],LINKFLAGS=['-pg'],SHLINKFLAGS=['-pg'])
 env.Prepend(CXXFLAGS=['-pipe','-Wall']) # '-Wc++0x-compat' ## not know to 
gcc-3.*
 
-if env['arcs']=='gen': 
env.Append(CXXFLAGS=['-fprofile-generate'],LINKFLAGS=['-fprofile-generate'])
-if env['arcs']=='use': 
env.Append(CXXFLAGS=['-fprofile-use'],LINKFLAGS=['-fprofile-use'])
+if env['PGO']=='gen': 
env.Append(CXXFLAGS=['-fprofile-generate'],LINKFLAGS=['-fprofile-generate'])
+if env['PGO']=='use': 
env.Append(CXXFLAGS=['-fprofile-use'],LINKFLAGS=['-fprofile-use'])
 
 ### LINKER
 ## libs for all plugins
@@ -486,28 +484,6 @@
        while apfl[i]==aptl[i] and i<min(len(apfl),len(aptl))-1: i+=1
        return sep.join(['..' for j in range(0,len(apfl)-i)]+aptl[i:])
 
-
-def makePkgConfig(fileName):
-       cflags,libs='Cflags: ','Libs: '
-       cflags+=' '+' '.join(env['CXXFLAGS'])
-       for df in env['CPPDEFINES']:
-               if type(df)==tuple: cflags+=' -D%s=%s'%(df[0],df[1])
-               else: cflags+=' -D%s'%df
-       for p in env['CPPPATH']:
-               if p[0]=='#': cflags+=' -I$PREFIX/include/yade$SUFFIX'
-               else: cflags+=' -I%s'%p
-       for l in env['SHLINKFLAGS']:
-               if not l.find('soname')>=0: libs+=' '+l # skip -Wl,soname=...
-       for p in env['RPATH']: libs+=' -Wl,-rpath=%s'%p
-       for p in env['LIBPATH']: libs+=' -L%s'%p
-       pc='Name: Yade\nDescription: Platform for dynamic mechanics\nVersion: 
%s\n%s\n%s\n'%(env['version'],cflags,libs)
-       pc+='yadeLibDir: $PREFIX/lib/yade$SUFFIX\n'
-       pc=re.sub(r'\bPREFIX\b','runtimePREFIX',pc) # fix prefix paths
-       pc=re.sub(r'\bbuildDir\b','runtimePREFIX',pc) # fix include paths: 
divert to the installed location
-       pc=env.subst(pc)+'\n'
-       f=file(env.subst(fileName),'w'); f.write(pc); f.close()
-       return None
-
 # 1. symlink all headers to buildDir/include before the actual build
 # 2. (unused now) instruct scons to install (not symlink) all headers to the 
right place as well
 # 3. set the "install" target as default (if scons is called without any 
arguments), which triggers build in turn
@@ -518,11 +494,8 @@
        #env.AddPreAction(installAlias,installHeaders)
        from os.path import 
join,split,isabs,isdir,exists,lexists,islink,isfile,sep
        installHeaders() # install to buildDir always
-       if 0: # do not install headers, nor make pkg-config (was never used, I 
think)
+       if 0: # do not install headers
                installHeaders(env.subst('$PREFIX')) # install to $PREFIX if 
specifically requested: like "scons /usr/local/include"
-               makePkgConfig('$buildDir/yade${SUFFIX}.pc')
-               env.Install(pcDir,'$buildDir/yade${SUFFIX}.pc')
-               #  add pcDir to instDirs if you install pkg-config stuff at 
some point
        if not env['haveForeach']:
                boostDir=buildDir+'/include/yade-'+env['version']+'/boost'
                foreachLink=boostDir+'/foreach.hpp'
@@ -532,8 +505,7 @@
                        if lexists(foreachLink): os.remove(foreachLink) # 
broken symlink: remove it
                        
os.symlink(relpath(foreachLink,foreachTarget),foreachLink)
                
env.InstallAs(env['PREFIX']+'/include/yade-'+env['version']+'/boost/foreach.hpp',foreachTarget)
-       installAlias=env.Alias('install',instDirs) # build and install 
everything that should go to instDirs, which are $PREFIX/{bin,lib} (uses scons' 
Install)
-       env.Default([installAlias,'$PREFIX'])
+       env.Default(env.Alias('install',instDirs)) # build and install 
everything that should go to instDirs, which are $PREFIX/{bin,lib} (uses scons' 
Install)
 
 env.Export('env');
 
@@ -558,8 +530,9 @@
                        os.remove(ff)
 
 
#################################################################################
-#### DOCUMENTATION 
##############################################################
-#################################################################################
+#### DOCUMENTATION
+# must be explicitly requested to be installed, e.g.:
+#    scons /usr/local/share/doc
 env.Install('$PREFIX/share/doc/yade$SUFFIX-doc/',['examples','scripts','doc'])
 
 #Progress('.', interval=100, file=sys.stderr)

Modified: trunk/debian/control-template
===================================================================
--- trunk/debian/control-template       2009-07-12 08:21:25 UTC (rev 1857)
+++ trunk/debian/control-template       2009-07-12 08:39:34 UTC (rev 1858)
@@ -31,4 +31,4 @@
 Description: Platform for dynamical modeling.
  Yet Another Dynamic Engine. etc.
  .
- This package contains examples, test scripts and documentation
+ This package contains examples, test scripts and some documentation.


_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to