Missing changes from last commit
[senf.git] / SConstruct
index 0e71c6d..fce3c2d 100644 (file)
@@ -1,6 +1,6 @@
 # -*- python -*-
 
-import sys, glob, os.path, datetime, pwd, time, fnmatch
+import sys, glob, os.path, datetime, pwd, time, fnmatch, string
 sys.path.append('senfscons')
 import SENFSCons
 
@@ -28,7 +28,20 @@ def updateRevision(target, source, env):
         rev = rev[:-1]
     if 'm' in rev:
         rev = rev[:-1]
+    url = None
+    for line in os.popen("svn info"):
+        elts=line.split(':',1)
+        if elts[0] == 'URL':
+            url = elts[1].strip()
+    version = None
+    if '/tags/' in url:
+        version = url.rsplit('/',1)[-1].split('_',1)[0]
+        if version[0] not in string.digits:
+            version = None
+    if version is None:
+        version = '1:0r%s' % rev
     changelog = file('debian/changelog.template').read() % {
+        'version': version,
         'rev': rev,
         'user': pwd.getpwuid(os.getuid()).pw_gecos.split(',')[0].strip(),
         'date': time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()) }
@@ -129,7 +142,8 @@ def configFilesOpts(target, source, env, for_signature):
 
 env.Append(
    CPPPATH = [ '#/include' ],
-   LIBS = [ 'iberty', '$BOOSTREGEXLIB' ],
+   LIBS = [ 'readline', '$BOOSTREGEXLIB', '$BOOSTIOSTREAMSLIB' ],
+   TEST_EXTRA_LIBS = [ '$BOOSTFSLIB' ],
    DOXY_XREF_TYPES = [ 'bug', 'fixme', 'todo', 'idea' ],
    DOXY_HTML_XSL = '#/doclib/html-munge.xsl',
    ENV = { 'TODAY' : str(datetime.date.today()),
@@ -143,7 +157,7 @@ env.Append(
    CONFIG_FILES_OPTS = configFilesOpts,
    CLEAN_PATTERNS = [ '*~', '#*#', '*.pyc', 'semantic.cache', '.sconsign', '.sconsign.dblite' ],
    BUILDPACKAGE_COMMAND = "dpkg-buildpackage -us -uc -rfakeroot -I.svn -I_templates $CONFIG_FILES_OPTS",
-   TOP_INCLUDES = [ 'Packets', 'PPI', 'Scheduler', 'Socket', 'Utils',
+   TOP_INCLUDES = [ 'Packets', 'PPI', 'Scheduler', 'Socket', 'Utils', 'Console',
                     'config.hh', 'local_config.hh' ],
 )
 
@@ -155,7 +169,7 @@ Export('env')
 
 # Create Doxyfile.local otherwise doxygen will barf on this non-existent file
 # Create it even when cleaning, to silence the doxygen builder warnings
-if not os.path.exists("Doxyfile.local"):
+if not env.GetOption('clean') and not os.path.exists("Doxyfile.local"):
     Execute(Touch("Doxyfile.local"))
 
 # Create local_config.h
@@ -208,10 +222,11 @@ env.Alias('default', libsenf)
 
 env.Alias('install_all', env.Install('$LIBINSTALLDIR', libsenf))
 
-env.Clean('all', [ os.path.join(path,f)
-                   for path, subdirs, files in os.walk('.')
-                   for pattern in env['CLEAN_PATTERNS']
-                   for f in fnmatch.filter(files,pattern) ])
+if env.GetOption('clean'):
+    env.Clean('all', [ os.path.join(path,f)
+                       for path, subdirs, files in os.walk('.')
+                       for pattern in env['CLEAN_PATTERNS']
+                       for f in fnmatch.filter(files,pattern) ])
 
 PhonyTarget(env, 'deb', [
     checkLocalConf,