[SCM] mpv/master: Update waf to v1.8.12
ghedo at users.alioth.debian.org
ghedo at users.alioth.debian.org
Fri Sep 4 08:58:28 UTC 2015
The following commit has been merged in the master branch:
commit 3a74e275a22eeca995bcee09f50d5661ed04d222
Author: Alessandro Ghedini <alessandro at ghedini.me>
Date: Mon Jul 20 18:42:01 2015 +0200
Update waf to v1.8.12
diff --git a/debian/patches/03_waf.patch b/debian/patches/03_waf.patch
index 8b1d16b..3141ba4 100644
--- a/debian/patches/03_waf.patch
+++ b/debian/patches/03_waf.patch
@@ -8,10 +8,10 @@ Last-Update: 2014-11-28
--- /dev/null
+++ b/waf
-@@ -0,0 +1,165 @@
+@@ -0,0 +1,166 @@
+#!/usr/bin/env python
+# encoding: ISO8859-1
-+# Thomas Nagy, 2005-2014
++# Thomas Nagy, 2005-2015
+
+"""
+Redistribution and use in source and binary forms, with or without
@@ -43,12 +43,13 @@ Last-Update: 2014-11-28
+
+import os, sys, inspect
+
-+VERSION="1.8.4"
-+REVISION="6442f4de997a9be97a56ebfe12e49ac5"
++VERSION="1.8.12"
++REVISION="f00e5b53f6bbeab1384a38c9cc5d51f7"
++GIT="1427497785a594dedeaac09013db635791f068c4"
+INSTALL=''
-+C1='#.'
-+C2='#+'
-+C3='#('
++C1='#+'
++C2='#)'
++C3='#%'
+cwd = os.getcwd()
+join = os.path.join
+
@@ -176,10 +177,10 @@ Last-Update: 2014-11-28
+
--- /dev/null
+++ b/waflib/Build.py
-@@ -0,0 +1,761 @@
+@@ -0,0 +1,759 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,errno,re,shutil,stat
+try:
@@ -517,8 +518,6 @@ Last-Update: 2014-11-28
+ min_grp=0
+ for name in self.targets.split(','):
+ tg=self.get_tgen_by_name(name)
-+ if not tg:
-+ raise Errors.WafError('target %r does not exist'%name)
+ m=self.get_group_idx(tg)
+ if m>min_grp:
+ min_grp=m
@@ -940,10 +939,10 @@ Last-Update: 2014-11-28
+ return match
--- /dev/null
+++ b/waflib/ConfigSet.py
-@@ -0,0 +1,152 @@
+@@ -0,0 +1,153 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import copy,re,os
+from waflib import Logs,Utils
@@ -1012,6 +1011,7 @@ Last-Update: 2014-11-28
+ for x in keys:
+ tbl[x]=copy.deepcopy(tbl[x])
+ self.table=tbl
++ return self
+ def get_flat(self,key):
+ s=self[key]
+ if isinstance(s,str):return s
@@ -1095,10 +1095,10 @@ Last-Update: 2014-11-28
+ self.table=self.undo_stack.pop(-1)
--- /dev/null
+++ b/waflib/Configure.py
-@@ -0,0 +1,373 @@
+@@ -0,0 +1,383 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,shlex,sys,time,re,shutil
+from waflib import ConfigSet,Utils,Options,Logs,Context,Build,Errors
@@ -1200,11 +1200,11 @@ Last-Update: 2014-11-28
+ env['hash']=self.hash
+ env['files']=self.files
+ env['environ']=dict(self.environ)
-+ if not self.env.NO_LOCK_IN_RUN:
++ if not self.env.NO_LOCK_IN_RUN and not getattr(Options.options,'no_lock_in_run'):
+ env.store(os.path.join(Context.run_dir,Options.lockfile))
-+ if not self.env.NO_LOCK_IN_TOP:
++ if not self.env.NO_LOCK_IN_TOP and not getattr(Options.options,'no_lock_in_top'):
+ env.store(os.path.join(Context.top_dir,Options.lockfile))
-+ if not self.env.NO_LOCK_IN_OUT:
++ if not self.env.NO_LOCK_IN_OUT and not getattr(Options.options,'no_lock_in_out'):
+ env.store(os.path.join(Context.out_dir,Options.lockfile))
+ def prepare_env(self,env):
+ if not env.PREFIX:
@@ -1213,9 +1213,15 @@ Last-Update: 2014-11-28
+ else:
+ env.PREFIX=''
+ if not env.BINDIR:
-+ env.BINDIR=Utils.subst_vars('${PREFIX}/bin',env)
++ if Options.options.bindir:
++ env.BINDIR=os.path.abspath(os.path.expanduser(Options.options.bindir))
++ else:
++ env.BINDIR=Utils.subst_vars('${PREFIX}/bin',env)
+ if not env.LIBDIR:
-+ env.LIBDIR=Utils.subst_vars('${PREFIX}/lib',env)
++ if Options.options.libdir:
++ env.LIBDIR=os.path.abspath(os.path.expanduser(Options.options.libdir))
++ else:
++ env.LIBDIR=Utils.subst_vars('${PREFIX}/lib%s'%Utils.lib64(),env)
+ def store(self):
+ n=self.cachedir.make_node('build.config.py')
+ n.write('version = 0x%x\ntools = %r\n'%(Context.HEXVERSION,self.tools))
@@ -1228,7 +1234,7 @@ Last-Update: 2014-11-28
+ tools=Utils.to_list(input)
+ if tooldir:tooldir=Utils.to_list(tooldir)
+ for tool in tools:
-+ mag=(tool,id(self.env),funs)
++ mag=(tool,id(self.env),tooldir,funs)
+ if mag in self.tool_cache:
+ self.to_log('(tool %s is already loaded, skipping)'%tool)
+ continue
@@ -1286,9 +1292,13 @@ Last-Update: 2014-11-28
+ setattr(Build.BuildContext,f.__name__,fun)
+ return f
+ at conf
-+def add_os_flags(self,var,dest=None):
-+ try:self.env.append_value(dest or var,shlex.split(self.environ[var]))
-+ except KeyError:pass
++def add_os_flags(self,var,dest=None,dup=True):
++ try:
++ flags=shlex.split(self.environ[var])
++ except KeyError:
++ return
++ if dup or''.join(flags)not in''.join(Utils.to_list(self.env[dest or var])):
++ self.env.append_value(dest or var,flags)
+ at conf
+def cmd_to_list(self,cmd):
+ if isinstance(cmd,str)and cmd.find(' '):
@@ -1474,14 +1484,14 @@ Last-Update: 2014-11-28
@@ -0,0 +1,360 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re,imp,sys
+from waflib import Utils,Errors,Logs
+import waflib.Node
-+HEXVERSION=0x1080400
-+WAFVERSION="1.8.4"
-+WAFREVISION="67a5bb5c730ba3abebccdbe64a4f509d92f33b9e"
++HEXVERSION=0x1080c00
++WAFVERSION="1.8.12"
++WAFREVISION="ae508f2f82fbfad4420f7920b6f68a6801e383fd"
+ABI=98
+DBFILE='.wafpickle-%s-%d-%d'%(sys.platform,sys.hexversion,ABI)
+APPNAME='APPNAME'
@@ -1614,7 +1624,7 @@ Last-Update: 2014-11-28
+ def exec_command(self,cmd,**kw):
+ subprocess=Utils.subprocess
+ kw['shell']=isinstance(cmd,str)
-+ Logs.debug('runner: %r'%cmd)
++ Logs.debug('runner: %r'%(cmd,))
+ Logs.debug('runner_env: kw=%s'%kw)
+ if self.logger:
+ self.logger.info(cmd)
@@ -1652,7 +1662,7 @@ Last-Update: 2014-11-28
+ def cmd_and_log(self,cmd,**kw):
+ subprocess=Utils.subprocess
+ kw['shell']=isinstance(cmd,str)
-+ Logs.debug('runner: %r'%cmd)
++ Logs.debug('runner: %r'%(cmd,))
+ if'quiet'in kw:
+ quiet=kw['quiet']
+ del kw['quiet']
@@ -1837,7 +1847,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,37 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import traceback,sys
+class WafError(Exception):
@@ -1877,7 +1887,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,196 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re,traceback,sys,types
+from waflib import Utils,ansiterm
@@ -1891,13 +1901,13 @@ Last-Update: 2014-11-28
+HOUR_FORMAT="%H:%M:%S"
+zones=''
+verbose=0
-+colors_lst={'USE':True,'BOLD':'\x1b[01;1m','RED':'\x1b[01;31m','GREEN':'\x1b[32m','YELLOW':'\x1b[33m','PINK':'\x1b[35m','BLUE':'\x1b[01;34m','CYAN':'\x1b[36m','NORMAL':'\x1b[0m','cursor_on':'\x1b[?25h','cursor_off':'\x1b[?25l',}
++colors_lst={'USE':True,'BOLD':'\x1b[01;1m','RED':'\x1b[01;31m','GREEN':'\x1b[32m','YELLOW':'\x1b[33m','PINK':'\x1b[35m','BLUE':'\x1b[01;34m','CYAN':'\x1b[36m','GREY':'\x1b[37m','NORMAL':'\x1b[0m','cursor_on':'\x1b[?25h','cursor_off':'\x1b[?25l',}
+indicator='\r\x1b[K%s%s%s'
+def enable_colors(use):
+ if use==1:
+ if not(sys.stderr.isatty()or sys.stdout.isatty()):
+ use=0
-+ if Utils.is_win32:
++ if Utils.is_win32 and os.name!='java':
+ term=os.environ.get('TERM','')
+ else:
+ term=os.environ.get('TERM','dumb')
@@ -2073,10 +2083,10 @@ Last-Update: 2014-11-28
+ info("%s%s%s %s"%(colors(col),msg,colors.NORMAL,label),extra={'terminator':sep})
--- /dev/null
+++ b/waflib/Node.py
-@@ -0,0 +1,469 @@
+@@ -0,0 +1,463 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re,sys,shutil
+from waflib import Utils,Errors
@@ -2111,24 +2121,9 @@ Last-Update: 2014-11-28
+**/_darcs/**
+**/.intlcache
+**/.DS_Store'''
-+def split_path(path):
-+ return path.split('/')
-+def split_path_cygwin(path):
-+ if path.startswith('//'):
-+ ret=path.split('/')[2:]
-+ ret[0]='/'+ret[0]
-+ return ret
-+ return path.split('/')
-+re_sp=re.compile('[/\\\\]')
-+def split_path_win32(path):
-+ if path.startswith('\\\\'):
-+ if path.startswith('\\\\?'):
-+ path=path[4:]
-+ else:
-+ ret=re.split(re_sp,path)[2:]
-+ ret[0]='\\\\'+ret[0]
-+ return ret
-+ return re.split(re_sp,path)
++split_path=Utils.split_path_unix
++split_path_cygwin=Utils.split_path_cygwin
++split_path_win32=Utils.split_path_win32
+if sys.platform=='cygwin':
+ split_path=split_path_cygwin
+elif Utils.is_win32:
@@ -2304,6 +2299,9 @@ Last-Update: 2014-11-28
+ if c1.parent:
+ for i in range(up):
+ lst.append('..')
++ else:
++ if lst and not Utils.is_win32:
++ lst.append('')
+ lst.reverse()
+ return os.sep.join(lst)or'.'
+ def abspath(self):
@@ -2311,22 +2309,28 @@ Last-Update: 2014-11-28
+ return self.cache_abspath
+ except AttributeError:
+ pass
-+ if os.sep=='/':
-+ if not self.parent:
-+ val=os.sep
-+ elif not self.parent.name:
-+ val=os.sep+self.name
-+ else:
-+ val=self.parent.abspath()+os.sep+self.name
++ if not self.parent:
++ val=os.sep
++ elif not self.parent.name:
++ val=os.sep+self.name
+ else:
++ val=self.parent.abspath()+os.sep+self.name
++ self.cache_abspath=val
++ return val
++ if Utils.is_win32:
++ def abspath(self):
++ try:
++ return self.cache_abspath
++ except AttributeError:
++ pass
+ if not self.parent:
+ val=''
+ elif not self.parent.name:
+ val=self.name+os.sep
+ else:
+ val=self.parent.abspath().rstrip(os.sep)+os.sep+self.name
-+ self.cache_abspath=val
-+ return val
++ self.cache_abspath=val
++ return val
+ def is_child_of(self,node):
+ p=self
+ diff=self.height()-node.height()
@@ -2545,10 +2549,10 @@ Last-Update: 2014-11-28
+ pass
--- /dev/null
+++ b/waflib/Options.py
-@@ -0,0 +1,142 @@
+@@ -0,0 +1,147 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,tempfile,optparse,sys,re
+from waflib import Logs,Utils,Context
@@ -2609,6 +2613,9 @@ Last-Update: 2014-11-28
+ self.option_groups['configure options']=gr
+ gr.add_option('-o','--out',action='store',default='',help='build dir for the project',dest='out')
+ gr.add_option('-t','--top',action='store',default='',help='src dir for the project',dest='top')
++ gr.add_option('--no-lock-in-run',action='store_true',default='',help=optparse.SUPPRESS_HELP,dest='no_lock_in_run')
++ gr.add_option('--no-lock-in-out',action='store_true',default='',help=optparse.SUPPRESS_HELP,dest='no_lock_in_out')
++ gr.add_option('--no-lock-in-top',action='store_true',default='',help=optparse.SUPPRESS_HELP,dest='no_lock_in_top')
+ default_prefix=getattr(Context.g_module,'default_prefix',os.environ.get('PREFIX'))
+ if not default_prefix:
+ if platform=='win32':
@@ -2617,6 +2624,8 @@ Last-Update: 2014-11-28
+ else:
+ default_prefix='/usr/local/'
+ gr.add_option('--prefix',dest='prefix',default=default_prefix,help='installation prefix [default: %r]'%default_prefix)
++ gr.add_option('--bindir',dest='bindir',help='bindir')
++ gr.add_option('--libdir',dest='libdir',help='libdir')
+ gr=self.add_option_group('Build and installation options')
+ self.option_groups['build and install options']=gr
+ gr.add_option('-p','--progress',dest='progress_bar',default=0,action='count',help='-p: progress bar; -pp: ide output')
@@ -2693,7 +2702,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,201 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import random,atexit
+try:
@@ -2894,10 +2903,10 @@ Last-Update: 2014-11-28
+ self.free_task_pool()
--- /dev/null
+++ b/waflib/Scripting.py
-@@ -0,0 +1,385 @@
+@@ -0,0 +1,394 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,shlex,shutil,traceback,errno,sys,stat
+from waflib import Utils,Configure,Logs,Options,ConfigSet,Context,Errors,Build,Node
@@ -2915,6 +2924,11 @@ Last-Update: 2014-11-28
+ ctx.curdir=current_directory
+ ctx.parse_args()
+ sys.exit(0)
++ if len(sys.argv)>1:
++ potential_wscript=os.path.join(current_directory,sys.argv[1])
++ if os.path.basename(potential_wscript)=='wscript'and os.path.isfile(potential_wscript):
++ current_directory=os.path.normpath(os.path.dirname(potential_wscript))
++ sys.argv.pop(1)
+ Context.waf_dir=wafdir
+ Context.launch_dir=current_directory
+ no_climb=os.environ.get('NOCLIMB',None)
@@ -2924,8 +2938,13 @@ Last-Update: 2014-11-28
+ if y.startswith(k):
+ no_climb=True
+ break
++ for x in sys.argv:
++ if x.startswith('--top='):
++ Context.run_dir=Context.top_dir=x[6:]
++ if x.startswith('--out='):
++ Context.out_dir=x[6:]
+ cur=current_directory
-+ while cur:
++ while cur and not Context.top_dir:
+ lst=os.listdir(cur)
+ if Options.lockfile in lst:
+ env=ConfigSet.ConfigSet()
@@ -3145,7 +3164,7 @@ Last-Update: 2014-11-28
+ zip.write(x.abspath(),archive_name,zipfile.ZIP_DEFLATED)
+ zip.close()
+ else:
-+ self.fatal('Valid algo types are tar.bz2, tar.gz or zip')
++ self.fatal('Valid algo types are tar.bz2, tar.gz, tar.xz or zip')
+ try:
+ from hashlib import sha1 as sha
+ except ImportError:
@@ -3242,7 +3261,6 @@ Last-Update: 2014-11-28
+ '''checks if the project compiles (tarball from 'dist')'''
+ pass
+def update(ctx):
-+ '''updates the plugins from the *waflib/extras* directory'''
+ lst=Options.options.files.split(',')
+ if not lst:
+ lst=[x for x in Utils.listdir(Context.waf_dir+'/waflib/extras')if x.endswith('.py')]
@@ -3282,10 +3300,10 @@ Last-Update: 2014-11-28
+Build.BuildContext.execute=autoconfigure(Build.BuildContext.execute)
--- /dev/null
+++ b/waflib/Task.py
-@@ -0,0 +1,654 @@
+@@ -0,0 +1,659 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re,sys
+from waflib import Utils,Logs,Errors
@@ -3334,12 +3352,15 @@ Last-Update: 2014-11-28
+ if getattr(cls,'run_str',None):
+ (f,dvars)=compile_fun(cls.run_str,cls.shell)
+ cls.hcode=cls.run_str
++ cls.orig_run_str=cls.run_str
+ cls.run_str=None
+ cls.run=f
+ cls.vars=list(set(cls.vars+dvars))
+ cls.vars.sort()
+ elif getattr(cls,'run',None)and not'hcode'in cls.__dict__:
+ cls.hcode=Utils.h_fun(cls.run)
++ if sys.hexversion>0x3000000:
++ cls.hcode=cls.hcode.encode('iso8859-1','xmlcharrefreplace')
+ getattr(cls,'register',classes)[name]=cls
+evil=store_task_type('evil',(object,),{})
+class TaskBase(evil):
@@ -3419,6 +3440,8 @@ Last-Update: 2014-11-28
+ def post_run(self):
+ pass
+ def log_display(self,bld):
++ if self.generator.bld.progress_bar==3:
++ return
+ s=self.display()
+ if s:
+ if bld.logger:
@@ -3619,7 +3642,7 @@ Last-Update: 2014-11-28
+ self.hasrun=MISSING
+ self.err_msg='-> missing file: %r'%node.abspath()
+ raise Errors.WafError(self.err_msg)
-+ node.sig=sig
++ node.sig=node.cache_sig=sig
+ bld.task_sigs[self.uid()]=self.cache_sig
+ def sig_explicit_deps(self):
+ bld=self.generator.bld
@@ -3732,9 +3755,9 @@ Last-Update: 2014-11-28
+ except AttributeError:
+ m=Utils.md5()
+ up=m.update
-+ up(self.__class__.__name__.encode('iso8859-1'))
++ up(self.__class__.__name__.encode('iso8859-1','xmlcharrefreplace'))
+ for x in self.inputs+self.outputs:
-+ up(x.abspath().encode('iso8859-1'))
++ up(x.abspath().encode('iso8859-1','xmlcharrefreplace'))
+ self.uid_=m.digest()
+ return self.uid_
+ uid.__doc__=Task.uid.__doc__
@@ -3906,7 +3929,7 @@ Last-Update: 2014-11-28
+ def post_run(self):
+ old_post_run(self)
+ for node in self.outputs:
-+ node.sig=Utils.h_file(node.abspath())
++ node.sig=node.cache_sig=Utils.h_file(node.abspath())
+ self.generator.bld.task_sigs[node.abspath()]=self.uid()
+ cls.post_run=post_run
+ old_runnable_status=cls.runnable_status
@@ -3939,14 +3962,15 @@ Last-Update: 2014-11-28
+ return cls
--- /dev/null
+++ b/waflib/TaskGen.py
-@@ -0,0 +1,407 @@
+@@ -0,0 +1,416 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import copy,re,os
+from waflib import Task,Utils,Logs,Errors,ConfigSet,Node
+feats=Utils.defaultdict(set)
++HEADER_EXTS=['.h','.hpp','.hxx','.hh']
+class task_gen(object):
+ mappings=Utils.ordered_iter_dict()
+ prec=Utils.defaultdict(list)
@@ -4273,8 +4297,12 @@ Last-Update: 2014-11-28
+ except AttributeError:
+ d={}
+ for x in lst:
-+ tmp=getattr(self.generator,x,'')or self.env.get_flat(x)or self.env.get_flat(x.upper())
-+ d[x]=str(tmp)
++ tmp=getattr(self.generator,x,'')or self.env[x]or self.env[x.upper()]
++ try:
++ tmp=''.join(tmp)
++ except TypeError:
++ tmp=str(tmp)
++ d[x]=tmp
+ code=code%d
+ self.outputs[0].write(code,encoding=getattr(self.generator,'encoding','ISO8859-1'))
+ self.generator.bld.raw_deps[self.uid()]=self.dep_vars=lst
@@ -4341,8 +4369,12 @@ Last-Update: 2014-11-28
+ if val:
+ has_constraints=True
+ setattr(tsk,k,val)
-+ if not has_constraints and b.name.endswith('.h'):
-+ tsk.before=[k for k in('c','cxx')if k in Task.classes]
++ if not has_constraints:
++ global HEADER_EXTS
++ for xt in HEADER_EXTS:
++ if b.name.endswith(xt):
++ tsk.before=[k for k in('c','cxx')if k in Task.classes]
++ break
+ inst_to=getattr(self,'install_path',None)
+ if inst_to:
+ self.bld.install_files(inst_to,b,chmod=getattr(self,'chmod',Utils.O644))
@@ -4352,14 +4384,14 @@ Last-Update: 2014-11-28
@@ -0,0 +1,4 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
--- /dev/null
+++ b/waflib/Tools/ar.py
@@ -0,0 +1,13 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib.Configure import conf
+ at conf
@@ -4375,7 +4407,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,25 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib import Task,Utils
@@ -4403,7 +4435,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,28 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib import Task
+from waflib.TaskGen import extension
@@ -4434,9 +4466,9 @@ Last-Update: 2014-11-28
@@ -0,0 +1,26 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
-+from waflib import TaskGen,Task,Utils
++from waflib import TaskGen,Task
+from waflib.Tools import c_preproc
+from waflib.Tools.ccroot import link_task,stlink_task
+ at TaskGen.extension('.c')
@@ -4450,7 +4482,7 @@ Last-Update: 2014-11-28
+ ext_in=['.h']
+ scan=c_preproc.scan
+class cprogram(link_task):
-+ run_str='${LINK_CC} ${LINKFLAGS} ${CCLNK_SRC_F}${SRC} ${CCLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${FRAMEWORK_ST:FRAMEWORK} ${ARCH_ST:ARCH} ${STLIB_MARKER} ${STLIBPATH_ST:STLIBPATH} ${STLIB_ST:STLIB} ${SHLIB_MARKER} ${LIBPATH_ST:LIBPATH} ${LIB_ST:LIB}'
++ run_str='${LINK_CC} ${LINKFLAGS} ${CCLNK_SRC_F}${SRC} ${CCLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${FRAMEWORK_ST:FRAMEWORK} ${ARCH_ST:ARCH} ${STLIB_MARKER} ${STLIBPATH_ST:STLIBPATH} ${STLIB_ST:STLIB} ${SHLIB_MARKER} ${LIBPATH_ST:LIBPATH} ${LIB_ST:LIB} ${LDFLAGS}'
+ ext_out=['.bin']
+ vars=['LINKDEPS']
+ inst_to='${BINDIR}'
@@ -4463,7 +4495,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,55 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,re
+from waflib import Utils,Build
@@ -4518,13 +4550,13 @@ Last-Update: 2014-11-28
+ return bld(*k,**kw)
--- /dev/null
+++ b/waflib/Tools/c_config.py
-@@ -0,0 +1,722 @@
+@@ -0,0 +1,743 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re,shlex,sys
-+from waflib import Build,Utils,Task,Options,Logs,Errors,ConfigSet,Runner
++from waflib import Build,Utils,Task,Options,Logs,Errors,Runner
+from waflib.TaskGen import after_method,feature
+from waflib.Configure import conf
+WAF_CONFIG_H='config.h'
@@ -4536,7 +4568,7 @@ Last-Update: 2014-11-28
+ void *p;
+ (void)argc; (void)argv;
+ p=(void*)(%s);
-+ return 0;
++ return (int)p;
+}
+'''
+SNIP_TYPE='''
@@ -4561,7 +4593,7 @@ Last-Update: 2014-11-28
+ return (size_t) off < sizeof(%(type_name)s);
+}
+'''
-+MACRO_TO_DESTOS={'__linux__':'linux','__GNU__':'gnu','__FreeBSD__':'freebsd','__NetBSD__':'netbsd','__OpenBSD__':'openbsd','__sun':'sunos','__hpux':'hpux','__sgi':'irix','_AIX':'aix','__CYGWIN__':'cygwin','__MSYS__':'msys','_UWIN':'uwin','_WIN64':'win32','_WIN32':'win32','__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__':'darwin','__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__':'darwin','__QNX__':'qnx','__native_client__':'nacl'}
++MACRO_TO_DESTOS={'__linux__':'linux','__GNU__':'gnu','__FreeBSD__':'freebsd','__NetBSD__':'netbsd','__OpenBSD__':'openbsd','__sun':'sunos','__hpux':'hpux','__sgi':'irix','_AIX':'aix','__CYGWIN__':'cygwin','__MSYS__':'cygwin','_UWIN':'uwin','_WIN64':'win32','_WIN32':'win32','__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__':'darwin','__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__':'darwin','__QNX__':'qnx','__native_client__':'nacl'}
+MACRO_TO_DEST_CPU={'__x86_64__':'x86_64','__amd64__':'x86_64','__i386__':'x86','__ia64__':'ia','__mips__':'mips','__sparc__':'sparc','__alpha__':'alpha','__aarch64__':'aarch64','__thumb__':'thumb','__arm__':'arm','__hppa__':'hppa','__powerpc__':'powerpc','__ppc__':'powerpc','__convex__':'convex','__m68k__':'m68k','__s390x__':'s390x','__s390__':'s390','__sh__':'sh',}
+ at conf
+def parse_flags(self,line,uselib_store,env=None,force_static=False,posix=None):
@@ -4578,6 +4610,7 @@ Last-Update: 2014-11-28
+ app=env.append_value
+ appu=env.append_unique
+ uselib=uselib_store
++ static=False
+ while lst:
+ x=lst.pop(0)
+ st=x[:2]
@@ -4594,13 +4627,15 @@ Last-Update: 2014-11-28
+ app('DEFINES_'+uselib,[ot])
+ elif st=='-l':
+ if not ot:ot=lst.pop(0)
-+ prefix=force_static and'STLIB_'or'LIB_'
++ prefix=(force_static or static)and'STLIB_'or'LIB_'
+ appu(prefix+uselib,[ot])
+ elif st=='-L':
+ if not ot:ot=lst.pop(0)
-+ appu('LIBPATH_'+uselib,[ot])
++ prefix=(force_static or static)and'STLIBPATH_'or'LIBPATH_'
++ appu(prefix+uselib,[ot])
+ elif x.startswith('/LIBPATH:'):
-+ appu('LIBPATH_'+uselib,[x.replace('/LIBPATH:','')])
++ prefix=(force_static or static)and'STLIBPATH_'or'LIBPATH_'
++ appu(prefix+uselib,[x.replace('/LIBPATH:','')])
+ elif x=='-pthread'or x.startswith('+')or x.startswith('-std'):
+ app('CFLAGS_'+uselib,[x])
+ app('CXXFLAGS_'+uselib,[x])
@@ -4609,12 +4644,18 @@ Last-Update: 2014-11-28
+ appu('FRAMEWORK_'+uselib,[lst.pop(0)])
+ elif x.startswith('-F'):
+ appu('FRAMEWORKPATH_'+uselib,[x[2:]])
-+ elif x=='-Wl,-rpath':
-+ app('RPATH_'+uselib,lst.pop(0))
++ elif x=='-Wl,-rpath'or x=='-Wl,-R':
++ app('RPATH_'+uselib,lst.pop(0).lstrip('-Wl,'))
++ elif x.startswith('-Wl,-R,'):
++ app('RPATH_'+uselib,x[7:])
+ elif x.startswith('-Wl,-R'):
+ app('RPATH_'+uselib,x[6:])
+ elif x.startswith('-Wl,-rpath,'):
+ app('RPATH_'+uselib,x[11:])
++ elif x=='-Wl,-Bstatic'or x=='-Bstatic':
++ static=True
++ elif x=='-Wl,-Bdynamic'or x=='-Bdynamic':
++ static=False
+ elif x.startswith('-Wl'):
+ app('LINKFLAGS_'+uselib,[x])
+ elif x.startswith('-m')or x.startswith('-f')or x.startswith('-dynamic'):
@@ -4699,7 +4740,7 @@ Last-Update: 2014-11-28
+ defi=self.env.PKG_CONFIG_DEFINES or{}
+ for key,val in defi.items():
+ lst.append('--define-variable=%s=%s'%(key,val))
-+ static=False
++ static=kw.get('force_static',False)
+ if'args'in kw:
+ args=Utils.to_list(kw['args'])
+ if'--static'in args or'--static-libs'in args:
@@ -5057,16 +5098,16 @@ Last-Update: 2014-11-28
+ return"\n".join(lst)
+ at conf
+def cc_add_flags(conf):
-+ conf.add_os_flags('CPPFLAGS','CFLAGS')
-+ conf.add_os_flags('CFLAGS')
++ conf.add_os_flags('CPPFLAGS',dup=False)
++ conf.add_os_flags('CFLAGS',dup=False)
+ at conf
+def cxx_add_flags(conf):
-+ conf.add_os_flags('CPPFLAGS','CXXFLAGS')
-+ conf.add_os_flags('CXXFLAGS')
++ conf.add_os_flags('CPPFLAGS',dup=False)
++ conf.add_os_flags('CXXFLAGS',dup=False)
+ at conf
+def link_add_flags(conf):
-+ conf.add_os_flags('LINKFLAGS')
-+ conf.add_os_flags('LDFLAGS','LINKFLAGS')
++ conf.add_os_flags('LINKFLAGS',dup=False)
++ conf.add_os_flags('LDFLAGS',dup=False)
+ at conf
+def cc_load_tools(conf):
+ if not conf.env.DEST_OS:
@@ -5098,6 +5139,8 @@ Last-Update: 2014-11-28
+ conf.fatal('Not icc/icpc')
+ if clang and out.find('__clang__')<0:
+ conf.fatal('Not clang/clang++')
++ if not clang and out.find('__clang__')>=0:
++ conf.fatal('Could not find gcc/g++ (only Clang), if renamed try eg: CC=gcc48 CXX=g++48 waf configure')
+ k={}
+ if icc or gcc or clang:
+ out=out.splitlines()
@@ -5141,7 +5184,10 @@ Last-Update: 2014-11-28
+ conf.env['CC_VERSION']=(ver[:-2],ver[-2],ver[-1])
+ else:
+ if isD('__clang__'):
-+ conf.env['CC_VERSION']=(k['__clang_major__'],k['__clang_minor__'],k['__clang_patchlevel__'])
++ try:
++ conf.env['CC_VERSION']=(k['__clang_major__'],k['__clang_minor__'],k['__clang_patchlevel__'])
++ except KeyError:
++ conf.env['CC_VERSION']=(k['__GNUC__'],k['__GNUC_MINOR__'],k['__GNUC_PATCHLEVEL__'])
+ else:
+ try:
+ conf.env['CC_VERSION']=(k['__GNUC__'],k['__GNUC_MINOR__'],k['__GNUC_PATCHLEVEL__'])
@@ -5175,7 +5221,7 @@ Last-Update: 2014-11-28
+ out=e.stdout
+ err=e.stderr
+ version=(out or err)
-+ version=version.split('\n')[0]
++ version=version.splitlines()[0]
+ version_re=re.compile(r'cc:\s+sun\s+(c\+\+|c)\s+(?P<major>\d*)\.(?P<minor>\d*)',re.I).search
+ match=version_re(version)
+ if match:
@@ -5186,7 +5232,7 @@ Last-Update: 2014-11-28
+ at conf
+def add_as_needed(self):
+ if self.env.DEST_BINFMT=='elf'and'gcc'in(self.env.CXX_NAME,self.env.CC_NAME):
-+ self.env.append_unique('LINKFLAGS','--as-needed')
++ self.env.append_unique('LINKFLAGS','-Wl,--as-needed')
+class cfgtask(Task.TaskBase):
+ def display(self):
+ return''
@@ -5213,6 +5259,7 @@ Last-Update: 2014-11-28
+ self.keep=False
+ self.returned_tasks=[]
+ self.task_sigs={}
++ self.progress_bar=0
+ def total(self):
+ return len(tasks)
+ def to_log(self,*k,**kw):
@@ -5236,17 +5283,23 @@ Last-Update: 2014-11-28
+ p.start()
+ for x in tasks:
+ x.logger.memhandler.flush()
++ if p.error:
++ for x in p.error:
++ if getattr(x,'err_msg',None):
++ self.to_log(x.err_msg)
++ self.end_msg('fail',color='RED')
++ raise Errors.WafError('There is an error in the library, read config.log for more information')
+ for x in tasks:
+ if x.hasrun!=Task.SUCCESS:
+ self.end_msg(kw.get('errmsg','no'),color='YELLOW',**kw)
-+ self.fatal(kw.get('fatalmsg',None)or'One of the tests has failed, see the config.log for more information')
++ self.fatal(kw.get('fatalmsg',None)or'One of the tests has failed, read config.log for more information')
+ self.end_msg('ok',**kw)
--- /dev/null
+++ b/waflib/Tools/c_osx.py
-@@ -0,0 +1,120 @@
+@@ -0,0 +1,138 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,shutil,sys,platform
+from waflib import TaskGen,Task,Build,Options,Utils,Errors
@@ -5265,7 +5318,7 @@ Last-Update: 2014-11-28
+ <key>NOTE</key>
+ <string>THIS IS A GENERATED FILE, DO NOT MODIFY</string>
+ <key>CFBundleExecutable</key>
-+ <string>%s</string>
++ <string>{app_name}</string>
+</dict>
+</plist>
+'''
@@ -5303,6 +5356,18 @@ Last-Update: 2014-11-28
+ self.apptask=self.create_task('macapp',self.link_task.outputs,n1)
+ inst_to=getattr(self,'install_path','/Applications')+'/%s/Contents/MacOS/'%name
+ self.bld.install_files(inst_to,n1,chmod=Utils.O755)
++ if getattr(self,'mac_files',None):
++ mac_files_root=getattr(self,'mac_files_root',None)
++ if isinstance(mac_files_root,str):
++ mac_files_root=self.path.find_node(mac_files_root)
++ if not mac_files_root:
++ self.bld.fatal('Invalid mac_files_root %r'%self.mac_files_root)
++ res_dir=n1.parent.parent.make_node('Resources')
++ inst_to=getattr(self,'install_path','/Applications')+'/%s/Resources'%name
++ for node in self.to_nodes(self.mac_files):
++ relpath=node.path_from(mac_files_root or node.parent)
++ tsk=self.create_task('macapp',node,res_dir.make_node(relpath))
++ self.bld.install_as(os.path.join(inst_to,relpath),node)
+ if getattr(self,'mac_resources',None):
+ res_dir=n1.parent.parent.make_node('Resources')
+ inst_to=getattr(self,'install_path','/Applications')+'/%s/Resources'%name
@@ -5330,6 +5395,10 @@ Last-Update: 2014-11-28
+ dir=self.create_bundle_dirs(name,out)
+ n1=dir.find_or_declare(['Contents','Info.plist'])
+ self.plisttask=plisttask=self.create_task('macplist',[],n1)
++ plisttask.context={'app_name':self.link_task.outputs[0].name,'env':self.env}
++ plist_ctx=getattr(self,'plist_context',None)
++ if(plist_ctx):
++ plisttask.context.update(plist_ctx)
+ if getattr(self,'mac_plist',False):
+ node=self.path.find_resource(self.mac_plist)
+ if node:
@@ -5337,7 +5406,7 @@ Last-Update: 2014-11-28
+ else:
+ plisttask.code=self.mac_plist
+ else:
-+ plisttask.code=app_info%self.link_task.outputs[0].name
++ plisttask.code=app_info
+ inst_to=getattr(self,'install_path','/Applications')+'/%s/Contents/'%name
+ self.bld.install_files(inst_to,n1)
+ at feature('cshlib','cxxshlib')
@@ -5363,13 +5432,15 @@ Last-Update: 2014-11-28
+ txt=self.code
+ else:
+ txt=self.inputs[0].read()
++ context=getattr(self,'context',{})
++ txt=txt.format(**context)
+ self.outputs[0].write(txt)
--- /dev/null
+++ b/waflib/Tools/c_preproc.py
-@@ -0,0 +1,612 @@
+@@ -0,0 +1,611 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re,string,traceback
+from waflib import Logs,Utils,Errors
@@ -5893,8 +5964,7 @@ Last-Update: 2014-11-28
+ try:
+ self.parse_cache=bld.parse_cache
+ except AttributeError:
-+ bld.parse_cache={}
-+ self.parse_cache=bld.parse_cache
++ self.parse_cache=bld.parse_cache={}
+ self.current_file=node
+ self.addlines(node)
+ if env['DEFINES']:
@@ -5984,7 +6054,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,153 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib import Task
+from waflib.Configure import conf
@@ -6137,10 +6207,10 @@ Last-Update: 2014-11-28
+ return tmp[0]
--- /dev/null
+++ b/waflib/Tools/ccroot.py
-@@ -0,0 +1,416 @@
+@@ -0,0 +1,444 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re
+from waflib import Task,Utils,Node,Errors
@@ -6215,7 +6285,9 @@ Last-Update: 2014-11-28
+ if self.env.DEST_BINFMT=='pe':
+ name=name+'-'+nums[0]
+ elif self.env.DEST_OS=='openbsd':
-+ pattern='%s.%s.%s'%(pattern,nums[0],nums[1])
++ pattern='%s.%s'%(pattern,nums[0])
++ if len(nums)>=2:
++ pattern+='.%s'%nums[1]
+ tmp=folder+os.sep+pattern%name
+ target=self.generator.path.find_or_declare(tmp)
+ self.set_outputs(target)
@@ -6427,7 +6499,7 @@ Last-Update: 2014-11-28
+ if not self.env.IMPLIBDIR:
+ self.env.IMPLIBDIR=self.env.LIBDIR
+ self.implib_install_task=self.bld.install_files(inst_to,implib,env=self.env,chmod=self.link_task.chmod,task=self.link_task)
-+re_vnum=re.compile('^([1-9]\\d*|0)[.]([1-9]\\d*|0)[.]([1-9]\\d*|0)$')
++re_vnum=re.compile('^([1-9]\\d*|0)([.]([1-9]\\d*|0)){0,2}?$')
+ at feature('cshlib','cxxshlib','dshlib','fcshlib','vnum')
+ at after_method('apply_link','propagate_uselib_vars')
+def apply_vnum(self):
@@ -6435,21 +6507,28 @@ Last-Update: 2014-11-28
+ return
+ link=self.link_task
+ if not re_vnum.match(self.vnum):
-+ raise Errors.WafError('Invalid version %r for %r'%(self.vnum,self))
++ raise Errors.WafError('Invalid vnum %r for target %r'%(self.vnum,getattr(self,'name',self)))
+ nums=self.vnum.split('.')
+ node=link.outputs[0]
++ cnum=getattr(self,'cnum',str(nums[0]))
++ cnums=cnum.split('.')
++ if len(cnums)>len(nums)or nums[0:len(cnums)]!=cnums:
++ raise Errors.WafError('invalid compatibility version %s'%cnum)
+ libname=node.name
+ if libname.endswith('.dylib'):
+ name3=libname.replace('.dylib','.%s.dylib'%self.vnum)
-+ name2=libname.replace('.dylib','.%s.dylib'%nums[0])
++ name2=libname.replace('.dylib','.%s.dylib'%cnum)
+ else:
+ name3=libname+'.'+self.vnum
-+ name2=libname+'.'+nums[0]
++ name2=libname+'.'+cnum
+ if self.env.SONAME_ST:
+ v=self.env.SONAME_ST%name2
+ self.env.append_value('LINKFLAGS',v.split())
+ if self.env.DEST_OS!='openbsd':
-+ self.create_task('vnum',node,[node.parent.find_or_declare(name2),node.parent.find_or_declare(name3)])
++ outs=[node.parent.find_or_declare(name3)]
++ if name2!=name3:
++ outs.append(node.parent.find_or_declare(name2))
++ self.create_task('vnum',node,outs)
+ if getattr(self,'install_task',None):
+ self.install_task.hasrun=Task.SKIP_ME
+ bld=self.bld
@@ -6460,9 +6539,12 @@ Last-Update: 2014-11-28
+ self.vnum_install_task=(t1,)
+ else:
+ t1=bld.install_as(path+os.sep+name3,node,env=self.env,chmod=self.link_task.chmod)
-+ t2=bld.symlink_as(path+os.sep+name2,name3)
+ t3=bld.symlink_as(path+os.sep+libname,name3)
-+ self.vnum_install_task=(t1,t2,t3)
++ if name2!=name3:
++ t2=bld.symlink_as(path+os.sep+name2,name3)
++ self.vnum_install_task=(t1,t2,t3)
++ else:
++ self.vnum_install_task=(t1,t3)
+ if'-dynamiclib'in self.env['LINKFLAGS']:
+ try:
+ inst_to=self.install_path
@@ -6470,8 +6552,10 @@ Last-Update: 2014-11-28
+ inst_to=self.link_task.__class__.inst_to
+ if inst_to:
+ p=Utils.subst_vars(inst_to,self.env)
-+ path=os.path.join(p,self.link_task.outputs[0].name)
++ path=os.path.join(p,name2)
+ self.env.append_value('LINKFLAGS',['-install_name',path])
++ self.env.append_value('LINKFLAGS','-Wl,-compatibility_version,%s'%cnum)
++ self.env.append_value('LINKFLAGS','-Wl,-current_version,%s'%self.vnum)
+class vnum(Task.Task):
+ color='CYAN'
+ quient=True
@@ -6554,12 +6638,26 @@ Last-Update: 2014-11-28
+ if not isinstance(obj,self.path.__class__):
+ obj=self.path.find_resource(obj)
+ return self(features='fake_obj',source=obj,name=obj.name)
++ at feature('cxxprogram','cprogram')
++ at after_method('apply_link','process_use')
++def set_full_paths_hpux(self):
++ if self.env.DEST_OS!='hp-ux':
++ return
++ base=self.bld.bldnode.abspath()
++ for var in['LIBPATH','STLIBPATH']:
++ lst=[]
++ for x in self.env[var]:
++ if x.startswith('/'):
++ lst.append(x)
++ else:
++ lst.append(os.path.normpath(os.path.join(base,x)))
++ self.env[var]=lst
--- /dev/null
+++ b/waflib/Tools/clang.py
@@ -0,0 +1,20 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib.Tools import ccroot,ar,gcc
@@ -6582,7 +6680,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,20 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib.Tools import ccroot,ar,gxx
@@ -6605,13 +6703,13 @@ Last-Update: 2014-11-28
@@ -0,0 +1,40 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,imp,types,re
+from waflib.Tools import ccroot
+from waflib import Utils,Configure
+from waflib.Logs import debug
-+c_compiler={'win32':['msvc','gcc','clang'],'cygwin':['gcc'],'darwin':['clang','gcc'],'aix':['xlc','gcc','clang'],'linux':['gcc','clang','icc'],'sunos':['suncc','gcc'],'irix':['gcc','irixcc'],'hpux':['gcc'],'gnu':['gcc','clang'],'java':['gcc','msvc','clang','icc'],'default':['gcc','clang'],}
++c_compiler={'win32':['msvc','gcc','clang'],'cygwin':['gcc'],'darwin':['clang','gcc'],'aix':['xlc','gcc','clang'],'linux':['gcc','clang','icc'],'sunos':['suncc','gcc'],'irix':['gcc','irixcc'],'hpux':['gcc'],'osf1V':['gcc'],'gnu':['gcc','clang'],'java':['gcc','msvc','clang','icc'],'default':['gcc','clang'],}
+def default_compilers():
+ build_platform=Utils.unversioned_sys_platform()
+ possible_compiler_list=c_compiler.get(build_platform,c_compiler['default'])
@@ -6648,13 +6746,13 @@ Last-Update: 2014-11-28
@@ -0,0 +1,40 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,imp,types,re
+from waflib.Tools import ccroot
+from waflib import Utils,Configure
+from waflib.Logs import debug
-+cxx_compiler={'win32':['msvc','g++','clang++'],'cygwin':['g++'],'darwin':['clang++','g++'],'aix':['xlc++','g++','clang++'],'linux':['g++','clang++','icpc'],'sunos':['sunc++','g++'],'irix':['g++'],'hpux':['g++'],'gnu':['g++','clang++'],'java':['g++','msvc','clang++','icpc'],'default':['g++','clang++']}
++cxx_compiler={'win32':['msvc','g++','clang++'],'cygwin':['g++'],'darwin':['clang++','g++'],'aix':['xlc++','g++','clang++'],'linux':['g++','clang++','icpc'],'sunos':['sunc++','g++'],'irix':['g++'],'hpux':['g++'],'osf1V':['g++'],'gnu':['g++','clang++'],'java':['g++','msvc','clang++','icpc'],'default':['g++','clang++']}
+def default_compilers():
+ build_platform=Utils.unversioned_sys_platform()
+ possible_compiler_list=cxx_compiler.get(build_platform,cxx_compiler['default'])
@@ -6691,7 +6789,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,37 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,imp,types,re
+from waflib import Utils,Configure,Options,Logs
@@ -6731,7 +6829,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,39 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,imp,types,re
+from waflib import Utils,Configure,Options,Logs,Errors
@@ -6773,7 +6871,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,132 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib import Utils,Task,Options,Logs,Errors
+from waflib.TaskGen import before_method,after_method,feature
@@ -6908,9 +7006,9 @@ Last-Update: 2014-11-28
@@ -0,0 +1,26 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
-+from waflib import TaskGen,Task,Utils
++from waflib import TaskGen,Task
+from waflib.Tools import c_preproc
+from waflib.Tools.ccroot import link_task,stlink_task
+ at TaskGen.extension('.cpp','.cc','.cxx','.C','.c++')
@@ -6924,7 +7022,7 @@ Last-Update: 2014-11-28
+ ext_in=['.h']
+ scan=c_preproc.scan
+class cxxprogram(link_task):
-+ run_str='${LINK_CXX} ${LINKFLAGS} ${CXXLNK_SRC_F}${SRC} ${CXXLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${FRAMEWORK_ST:FRAMEWORK} ${ARCH_ST:ARCH} ${STLIB_MARKER} ${STLIBPATH_ST:STLIBPATH} ${STLIB_ST:STLIB} ${SHLIB_MARKER} ${LIBPATH_ST:LIBPATH} ${LIB_ST:LIB}'
++ run_str='${LINK_CXX} ${LINKFLAGS} ${CXXLNK_SRC_F}${SRC} ${CXXLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FRAMEWORKPATH_ST:FRAMEWORKPATH} ${FRAMEWORK_ST:FRAMEWORK} ${ARCH_ST:ARCH} ${STLIB_MARKER} ${STLIBPATH_ST:STLIBPATH} ${STLIB_ST:STLIB} ${SHLIB_MARKER} ${LIBPATH_ST:LIBPATH} ${LIB_ST:LIB} ${LDFLAGS}'
+ vars=['LINKDEPS']
+ ext_out=['.bin']
+ inst_to='${BINDIR}'
@@ -6937,7 +7035,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,54 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib import Utils,Task,Errors
+from waflib.TaskGen import taskgen_method,feature,extension
@@ -6994,7 +7092,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,52 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib import Utils
+from waflib.Configure import conf
@@ -7049,7 +7147,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,133 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re
+from waflib import Utils,Logs
@@ -7185,7 +7283,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,29 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib import Task,Errors
+from waflib.TaskGen import taskgen_method,before_method
@@ -7217,7 +7315,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,51 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import sys
+from waflib.Tools import ar,d
@@ -7271,7 +7369,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,161 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+typos={'feature':'features','sources':'source','targets':'target','include':'includes','export_include':'export_includes','define':'defines','importpath':'includes','installpath':'install_path','iscopy':'is_copy',}
+meths_typos=['__call__','program','shlib','stlib','objects']
@@ -7310,7 +7408,7 @@ Last-Update: 2014-11-28
+ if not dupe:
+ for(k,v)in uids.items():
+ if len(v)>1:
-+ Logs.error('* Several tasks use the same identifier. Please check the information on\n http://docs.waf.googlecode.com/git/apidocs_16/Task.html#waflib.Task.Task.uid')
++ Logs.error('* Several tasks use the same identifier. Please check the information on\n https://waf.io/apidocs/Task.html?highlight=uid#waflib.Task.Task.uid')
+ for tsk in v:
+ Logs.error(' - object %r (%r) defined in %r'%(tsk.__class__.__name__,tsk,tsk.generator))
+def check_invalid_constraints(self):
@@ -7432,15 +7530,14 @@ Last-Update: 2014-11-28
+ pass
--- /dev/null
+++ b/waflib/Tools/fc.py
-@@ -0,0 +1,114 @@
+@@ -0,0 +1,115 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
-+import re
-+from waflib import Utils,Task,TaskGen,Logs
++from waflib import Utils,Task,Logs
+from waflib.Tools import ccroot,fc_config,fc_scan
-+from waflib.TaskGen import feature,before_method,after_method,extension
++from waflib.TaskGen import feature,extension
+from waflib.Configure import conf
+ccroot.USELIB_VARS['fc']=set(['FCFLAGS','DEFINES','INCLUDES'])
+ccroot.USELIB_VARS['fcprogram_test']=ccroot.USELIB_VARS['fcprogram']=set(['LIB','STLIB','LIBPATH','STLIBPATH','LINKFLAGS','RPATH','LINKDEPS'])
@@ -7491,6 +7588,8 @@ Last-Update: 2014-11-28
+ if x.startswith('MOD@'):
+ name=bld.modfile(x.replace('MOD@',''))
+ node=bld.srcnode.find_or_declare(name)
++ if not getattr(node,'sig',None):
++ node.sig=Utils.SIG_NIL
+ tsk.set_outputs(node)
+ outs[id(node)].add(tsk)
+ for tsk in lst:
@@ -7519,7 +7618,7 @@ Last-Update: 2014-11-28
+ return super(fc,self).runnable_status()
+class fcprogram(ccroot.link_task):
+ color='YELLOW'
-+ run_str='${FC} ${LINKFLAGS} ${FCLNK_SRC_F}${SRC} ${FCLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FCSTLIB_MARKER} ${FCSTLIBPATH_ST:STLIBPATH} ${FCSTLIB_ST:STLIB} ${FCSHLIB_MARKER} ${FCLIBPATH_ST:LIBPATH} ${FCLIB_ST:LIB}'
++ run_str='${FC} ${LINKFLAGS} ${FCLNK_SRC_F}${SRC} ${FCLNK_TGT_F}${TGT[0].abspath()} ${RPATH_ST:RPATH} ${FCSTLIB_MARKER} ${FCSTLIBPATH_ST:STLIBPATH} ${FCSTLIB_ST:STLIB} ${FCSHLIB_MARKER} ${FCLIBPATH_ST:LIBPATH} ${FCLIB_ST:LIB} ${LDFLAGS}'
+ inst_to='${BINDIR}'
+class fcshlib(fcprogram):
+ inst_to='${LIBDIR}'
@@ -7539,7 +7638,7 @@ Last-Update: 2014-11-28
+ kw['output']=0
+ try:
+ (bld.out,bld.err)=bld.cmd_and_log(cmd,**kw)
-+ except Exception ,e:
++ except Exception:
+ return-1
+ if bld.out:
+ bld.to_log("out: %s\n"%bld.out)
@@ -7549,10 +7648,10 @@ Last-Update: 2014-11-28
+ pass
--- /dev/null
+++ b/waflib/Tools/fc_config.py
-@@ -0,0 +1,285 @@
+@@ -0,0 +1,286 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re,os,sys,shlex
+from waflib.Configure import conf
@@ -7583,8 +7682,9 @@ Last-Update: 2014-11-28
+ v['SONAME_ST']='-Wl,-h,%s'
+ at conf
+def fc_add_flags(conf):
-+ conf.add_os_flags('FCFLAGS')
-+ conf.add_os_flags('LDFLAGS','LINKFLAGS')
++ conf.add_os_flags('FCFLAGS',dup=False)
++ conf.add_os_flags('LINKFLAGS',dup=False)
++ conf.add_os_flags('LDFLAGS',dup=False)
+ at conf
+def check_fortran(self,*k,**kw):
+ self.check_cc(fragment=FC_FRAGMENT,compile_filename='test.f',features='fc fcprogram',msg='Compiling a simple fortran app')
@@ -7604,7 +7704,7 @@ Last-Update: 2014-11-28
+def fortran_modifier_darwin(conf):
+ v=conf.env
+ v['FCFLAGS_fcshlib']=['-fPIC']
-+ v['LINKFLAGS_fcshlib']=['-dynamiclib','-Wl,-compatibility_version,1','-Wl,-current_version,1']
++ v['LINKFLAGS_fcshlib']=['-dynamiclib']
+ v['fcshlib_PATTERN']='lib%s.dylib'
+ v['FRAMEWORKPATH_ST']='-F%s'
+ v['FRAMEWORK_ST']='-framework %s'
@@ -7840,7 +7940,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,68 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re
+from waflib import Utils,Task,TaskGen,Logs
@@ -7911,7 +8011,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,32 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import waflib.TaskGen,os,re
+def decide_ext(self,node):
@@ -7946,7 +8046,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,54 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re
+from waflib import Utils
@@ -8003,7 +8103,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,12 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import waflib.Tools.asm
+from waflib.Tools import ar
@@ -8015,10 +8115,10 @@ Last-Update: 2014-11-28
+ conf.load('asm')
--- /dev/null
+++ b/waflib/Tools/gcc.py
-@@ -0,0 +1,98 @@
+@@ -0,0 +1,104 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib import Configure,Options,Utils
@@ -8076,7 +8176,7 @@ Last-Update: 2014-11-28
+def gcc_modifier_darwin(conf):
+ v=conf.env
+ v['CFLAGS_cshlib']=['-fPIC']
-+ v['LINKFLAGS_cshlib']=['-dynamiclib','-Wl,-compatibility_version,1','-Wl,-current_version,1']
++ v['LINKFLAGS_cshlib']=['-dynamiclib']
+ v['cshlib_PATTERN']='lib%s.dylib'
+ v['FRAMEWORKPATH_ST']='-F%s'
+ v['FRAMEWORK_ST']=['-framework']
@@ -8095,13 +8195,19 @@ Last-Update: 2014-11-28
+def gcc_modifier_hpux(conf):
+ v=conf.env
+ v['SHLIB_MARKER']=[]
-+ v['STLIB_MARKER']='-Bstatic'
++ v['STLIB_MARKER']=[]
+ v['CFLAGS_cshlib']=['-fPIC','-DPIC']
+ v['cshlib_PATTERN']='lib%s.sl'
+ at conf
+def gcc_modifier_openbsd(conf):
+ conf.env.SONAME_ST=[]
+ at conf
++def gcc_modifier_osf1V(conf):
++ v=conf.env
++ v['SHLIB_MARKER']=[]
++ v['STLIB_MARKER']=[]
++ v['SONAME_ST']=[]
++ at conf
+def gcc_modifier_platform(conf):
+ gcc_modifier_func=getattr(conf,'gcc_modifier_'+conf.env.DEST_OS,None)
+ if gcc_modifier_func:
@@ -8119,7 +8225,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,36 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import sys
+from waflib.Tools import ar,d
@@ -8158,7 +8264,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,68 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re
+from waflib import Utils
@@ -8204,7 +8310,7 @@ Last-Update: 2014-11-28
+ if out.find('__GNUC__')<0:
+ conf.fatal('Could not determine the compiler type')
+ k={}
-+ out=out.split('\n')
++ out=out.splitlines()
+ import shlex
+ for line in out:
+ lst=shlex.split(line)
@@ -8229,7 +8335,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,234 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os
+from waflib import Context,Task,Utils,Options,Errors,Logs
@@ -8463,21 +8569,21 @@ Last-Update: 2014-11-28
+ gr.add_option('--gsettingsschemadir',help='GSettings schema location [DATADIR/glib-2.0/schemas]',default='',dest='GSETTINGSSCHEMADIR')
--- /dev/null
+++ b/waflib/Tools/gnu_dirs.py
-@@ -0,0 +1,65 @@
+@@ -0,0 +1,66 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re
+from waflib import Utils,Options,Context
-+_options=[x.split(', ')for x in'''
++gnuopts='''
+bindir, user commands, ${EXEC_PREFIX}/bin
+sbindir, system binaries, ${EXEC_PREFIX}/sbin
+libexecdir, program-specific binaries, ${EXEC_PREFIX}/libexec
+sysconfdir, host-specific configuration, ${PREFIX}/etc
+sharedstatedir, architecture-independent variable data, ${PREFIX}/com
+localstatedir, variable data, ${PREFIX}/var
-+libdir, object code libraries, ${EXEC_PREFIX}/lib
++libdir, object code libraries, ${EXEC_PREFIX}/lib%s
+includedir, header files, ${PREFIX}/include
+oldincludedir, header files for non-GCC compilers, /usr/include
+datarootdir, architecture-independent data root, ${PREFIX}/share
@@ -8490,7 +8596,8 @@ Last-Update: 2014-11-28
+dvidir, DVI documentation, ${DOCDIR}
+pdfdir, PDF documentation, ${DOCDIR}
+psdir, PostScript documentation, ${DOCDIR}
-+'''.split('\n')if x]
++'''%Utils.lib64()
++_options=[x.split(', ')for x in gnuopts.splitlines()if x]
+def configure(conf):
+ def get_param(varname,default):
+ return getattr(Options.options,varname,'')or default
@@ -8511,7 +8618,7 @@ Last-Update: 2014-11-28
+ except TypeError:
+ complete=False
+ if not complete:
-+ lst=[name for name,_,_ in _options if not env[name.upper()]]
++ lst=[x for x,_,_ in _options if not env[x.upper()]]
+ raise conf.errors.WafError('Variable substitution failure %r'%lst)
+def options(opt):
+ inst_dir=opt.add_option_group('Installation prefix','By default, "waf install" will put the files in\
@@ -8531,10 +8638,10 @@ Last-Update: 2014-11-28
+ dirs_options.add_option(option_name,help=str_help,default='',dest=name.upper())
--- /dev/null
+++ b/waflib/Tools/gxx.py
-@@ -0,0 +1,98 @@
+@@ -0,0 +1,104 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib import Configure,Options,Utils
@@ -8592,7 +8699,7 @@ Last-Update: 2014-11-28
+def gxx_modifier_darwin(conf):
+ v=conf.env
+ v['CXXFLAGS_cxxshlib']=['-fPIC']
-+ v['LINKFLAGS_cxxshlib']=['-dynamiclib','-Wl,-compatibility_version,1','-Wl,-current_version,1']
++ v['LINKFLAGS_cxxshlib']=['-dynamiclib']
+ v['cxxshlib_PATTERN']='lib%s.dylib'
+ v['FRAMEWORKPATH_ST']='-F%s'
+ v['FRAMEWORK_ST']=['-framework']
@@ -8611,13 +8718,19 @@ Last-Update: 2014-11-28
+def gxx_modifier_hpux(conf):
+ v=conf.env
+ v['SHLIB_MARKER']=[]
-+ v['STLIB_MARKER']='-Bstatic'
++ v['STLIB_MARKER']=[]
+ v['CFLAGS_cxxshlib']=['-fPIC','-DPIC']
+ v['cxxshlib_PATTERN']='lib%s.sl'
+ at conf
+def gxx_modifier_openbsd(conf):
+ conf.env.SONAME_ST=[]
+ at conf
++def gcc_modifier_osf1V(conf):
++ v=conf.env
++ v['SHLIB_MARKER']=[]
++ v['STLIB_MARKER']=[]
++ v['SONAME_ST']=[]
++ at conf
+def gxx_modifier_platform(conf):
+ gxx_modifier_func=getattr(conf,'gxx_modifier_'+conf.env.DEST_OS,None)
+ if gxx_modifier_func:
@@ -8635,7 +8748,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,22 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib.Tools import ccroot,ar,gcc
@@ -8660,7 +8773,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,22 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib.Tools import ccroot,ar,gxx
@@ -8682,10 +8795,10 @@ Last-Update: 2014-11-28
+ conf.link_add_flags()
--- /dev/null
+++ b/waflib/Tools/ifort.py
-@@ -0,0 +1,51 @@
+@@ -0,0 +1,48 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re
+from waflib import Utils
@@ -8719,10 +8832,7 @@ Last-Update: 2014-11-28
+ else:
+ cmd=fc+['-logo']
+ out,err=fc_config.getoutput(conf,cmd,stdin=False)
-+ if out:
-+ match=version_re(out)
-+ else:
-+ match=version_re(err)
++ match=version_re(out)or version_re(err)
+ if not match:
+ conf.fatal('cannot determine ifort version.')
+ k=match.groupdict()
@@ -8739,7 +8849,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,97 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re
+from waflib import Configure,Context,TaskGen,Task,Utils,Runner,Options,Build,Logs
@@ -8839,7 +8949,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,47 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os
+from waflib import Utils
@@ -8889,7 +8999,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,307 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re,tempfile,shutil
+from waflib import TaskGen,Task,Utils,Options,Build,Errors,Node,Logs
@@ -9199,7 +9309,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,48 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,re
+from waflib import Options,TaskGen,Task,Utils
@@ -9250,7 +9360,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,37 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import sys
+from waflib.Tools import ar,d
@@ -9290,7 +9400,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,18 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib.TaskGen import extension
+from waflib import Task,Utils
@@ -9311,7 +9421,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,749 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys,re,tempfile
+from waflib import Utils,Task,Logs,Options,Errors
@@ -9339,7 +9449,7 @@ Last-Update: 2014-11-28
+version vfw32 wbemuuid webpost wiaguid wininet winmm winscard winspool winstrm
+wintrust wldap32 wmiutils wow32 ws2_32 wsnmp32 wsock32 wst wtsapi32 xaswitch xolehlp
+'''.split()
-+all_msvc_platforms=[('x64','amd64'),('x86','x86'),('ia64','ia64'),('x86_amd64','amd64'),('x86_ia64','ia64'),('x86_arm','arm')]
++all_msvc_platforms=[('x64','amd64'),('x86','x86'),('ia64','ia64'),('x86_amd64','amd64'),('x86_ia64','ia64'),('x86_arm','arm'),('amd64_x86','x86'),('amd64_arm','arm')]
+all_wince_platforms=[('armv4','arm'),('armv4i','arm'),('mipsii','mips'),('mipsii_fp','mips'),('mipsiv','mips'),('mipsiv_fp','mips'),('sh4','sh'),('x86','cex86')]
+all_icl_platforms=[('intel64','amd64'),('em64t','amd64'),('ia32','x86'),('Itanium','ia64')]
+def options(opt):
@@ -9383,7 +9493,7 @@ Last-Update: 2014-11-28
+echo INCLUDE=%%INCLUDE%%
+echo LIB=%%LIB%%;%%LIBPATH%%
+"""%(vcvars,target))
-+ sout=conf.cmd_and_log(['cmd','/E:on','/V:on','/C',batfile.abspath()])
++ sout=conf.cmd_and_log(['cmd.exe','/E:on','/V:on','/C',batfile.abspath()])
+ lines=sout.splitlines()
+ if not lines[0]:
+ lines.pop(0)
@@ -10063,7 +10173,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,16 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os
+import waflib.Tools.asm
@@ -10079,10 +10189,10 @@ Last-Update: 2014-11-28
+ conf.env.ASMPATH_ST='-I%s'+os.sep
--- /dev/null
+++ b/waflib/Tools/perl.py
-@@ -0,0 +1,84 @@
+@@ -0,0 +1,90 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os
+from waflib import Task,Options,Utils
@@ -10151,11 +10261,17 @@ Last-Update: 2014-11-28
+ return self.cmd_and_log(cmd_perl_config(cfg))
+ def cfg_lst(cfg):
+ return Utils.to_list(cfg_str(cfg))
++ def find_xsubpp():
++ for var in('privlib','vendorlib'):
++ xsubpp=cfg_lst('$Config{%s}/ExtUtils/xsubpp$Config{exe_ext}'%var)
++ if xsubpp and os.path.isfile(xsubpp[0]):
++ return xsubpp
++ return self.find_program('xsubpp')
+ env['LINKFLAGS_PERLEXT']=cfg_lst('$Config{lddlflags}')
+ env['INCLUDES_PERLEXT']=cfg_lst('$Config{archlib}/CORE')
+ env['CFLAGS_PERLEXT']=cfg_lst('$Config{ccflags} $Config{cccdlflags}')
-+ env['XSUBPP']=cfg_lst('$Config{privlib}/ExtUtils/xsubpp$Config{exe_ext}')
+ env['EXTUTILS_TYPEMAP']=cfg_lst('$Config{privlib}/ExtUtils/typemap')
++ env['XSUBPP']=find_xsubpp()
+ if not getattr(Options.options,'perlarchdir',None):
+ env['ARCHDIR_PERL']=cfg_str('$Config{sitearch}')
+ else:
@@ -10166,10 +10282,10 @@ Last-Update: 2014-11-28
+ opt.add_option('--with-perl-archdir',type='string',dest='perlarchdir',help='Specify directory where to install arch specific files',default=None)
--- /dev/null
+++ b/waflib/Tools/python.py
-@@ -0,0 +1,348 @@
+@@ -0,0 +1,379 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,sys
+from waflib import Utils,Options,Errors,Logs,Task,Node
@@ -10213,13 +10329,12 @@ Last-Update: 2014-11-28
+ self.install_32=True
+ at extension('.py')
+def process_py(self,node):
-+ assert(node.get_bld_sig())
+ assert(getattr(self,'install_path')),'add features="py"'
+ if self.install_path:
+ if self.install_from:
+ self.bld.install_files(self.install_path,[node],cwd=self.install_from,relative_trick=True)
+ else:
-+ self.bld.install_files(self.install_path,[node])
++ self.bld.install_files(self.install_path,[node],relative_trick=True)
+ lst=[]
+ if self.env.PYC:
+ lst.append('pyc')
@@ -10242,7 +10357,7 @@ Last-Update: 2014-11-28
+ tsk=self.create_task(ext,node,pyobj)
+ tsk.pyd=pyd
+ if self.install_path:
-+ self.bld.install_files(self.install_path,pyobj,cwd=node.parent.get_bld(),relative_trick=True)
++ self.bld.install_files(os.path.dirname(pyd),pyobj,cwd=node.parent.get_bld(),relative_trick=True)
+class pyc(Task.Task):
+ color='PINK'
+ def run(self):
@@ -10302,7 +10417,7 @@ Last-Update: 2014-11-28
+ self.fatal('The distutils module is unusable: install "python-devel"?')
+ self.to_log(out)
+ return_values=[]
-+ for s in out.split('\n'):
++ for s in out.splitlines():
+ s=s.strip()
+ if not s:
+ continue
@@ -10315,10 +10430,40 @@ Last-Update: 2014-11-28
+ else:break
+ return return_values
+ at conf
-+def check_python_headers(conf):
++def python_cross_compile(self,features='pyembed pyext'):
++ features=Utils.to_list(features)
++ if not('PYTHON_LDFLAGS'in self.environ or'PYTHON_PYEXT_LDFLAGS'in self.environ or'PYTHON_PYEMBED_LDFLAGS'in self.environ):
++ return False
++ for x in'PYTHON_VERSION PYTAG pyext_PATTERN'.split():
++ if not x in self.environ:
++ self.fatal('Please set %s in the os environment'%x)
++ else:
++ self.env[x]=self.environ[x]
++ xx=self.env.CXX_NAME and'cxx'or'c'
++ if'pyext'in features:
++ flags=self.environ.get('PYTHON_PYEXT_LDFLAGS',self.environ.get('PYTHON_LDFLAGS',None))
++ if flags is None:
++ self.fatal('No flags provided through PYTHON_PYEXT_LDFLAGS as required')
++ else:
++ self.parse_flags(flags,'PYEXT')
++ self.check(header_name='Python.h',define_name='HAVE_PYEXT',msg='Testing pyext configuration',features='%s %sshlib pyext'%(xx,xx),fragment=FRAG,errmsg='Could not build python extensions')
++ if'pyembed'in features:
++ flags=self.environ.get('PYTHON_PYEMBED_LDFLAGS',self.environ.get('PYTHON_LDFLAGS',None))
++ if flags is None:
++ self.fatal('No flags provided through PYTHON_PYEMBED_LDFLAGS as required')
++ else:
++ self.parse_flags(flags,'PYEMBED')
++ self.check(header_name='Python.h',define_name='HAVE_PYEMBED',msg='Testing pyembed configuration',fragment=FRAG,errmsg='Could not build a python embedded interpreter',features='%s %sprogram pyembed'%(xx,xx))
++ return True
++ at conf
++def check_python_headers(conf,features='pyembed pyext'):
++ features=Utils.to_list(features)
++ assert('pyembed'in features)or('pyext'in features),"check_python_headers features must include 'pyembed' and/or 'pyext'"
+ env=conf.env
+ if not env['CC_NAME']and not env['CXX_NAME']:
+ conf.fatal('load a compiler first (gcc, g++, ..)')
++ if conf.python_cross_compile(features):
++ return
+ if not env['PYTHON_VERSION']:
+ conf.check_python_version()
+ pybin=env.PYTHON
@@ -10330,7 +10475,7 @@ Last-Update: 2014-11-28
+ except RuntimeError:
+ conf.fatal("Python development headers not found (-v for details).")
+ vals=['%s = %r'%(x,y)for(x,y)in zip(v,lst)]
-+ conf.to_log("Configuration returned from %r:\n%r\n"%(pybin,'\n'.join(vals)))
++ conf.to_log("Configuration returned from %r:\n%s\n"%(pybin,'\n'.join(vals)))
+ dct=dict(zip(v,lst))
+ x='MACOSX_DEPLOYMENT_TARGET'
+ if dct[x]:
@@ -10340,15 +10485,17 @@ Last-Update: 2014-11-28
+ conf.find_program([''.join(pybin)+'-config','python%s-config'%num,'python-config-%s'%num,'python%sm-config'%num],var='PYTHON_CONFIG',msg="python-config",mandatory=False)
+ if env.PYTHON_CONFIG:
+ all_flags=[['--cflags','--libs','--ldflags']]
-+ if sys.hexversion<0x2060000:
++ if sys.hexversion<0x2070000:
+ all_flags=[[k]for k in all_flags[0]]
+ xx=env.CXX_NAME and'cxx'or'c'
-+ for flags in all_flags:
-+ conf.check_cfg(msg='Asking python-config for pyembed %r flags'%' '.join(flags),path=env.PYTHON_CONFIG,package='',uselib_store='PYEMBED',args=flags)
-+ conf.check(header_name='Python.h',define_name='HAVE_PYEMBED',msg='Getting pyembed flags from python-config',fragment=FRAG,errmsg='Could not build a python embedded interpreter',features='%s %sprogram pyembed'%(xx,xx))
-+ for flags in all_flags:
-+ conf.check_cfg(msg='Asking python-config for pyext %r flags'%' '.join(flags),path=env.PYTHON_CONFIG,package='',uselib_store='PYEXT',args=flags)
-+ conf.check(header_name='Python.h',define_name='HAVE_PYEXT',msg='Getting pyext flags from python-config',features='%s %sshlib pyext'%(xx,xx),fragment=FRAG,errmsg='Could not build python extensions')
++ if'pyembed'in features:
++ for flags in all_flags:
++ conf.check_cfg(msg='Asking python-config for pyembed %r flags'%' '.join(flags),path=env.PYTHON_CONFIG,package='',uselib_store='PYEMBED',args=flags)
++ conf.check(header_name='Python.h',define_name='HAVE_PYEMBED',msg='Getting pyembed flags from python-config',fragment=FRAG,errmsg='Could not build a python embedded interpreter',features='%s %sprogram pyembed'%(xx,xx))
++ if'pyext'in features:
++ for flags in all_flags:
++ conf.check_cfg(msg='Asking python-config for pyext %r flags'%' '.join(flags),path=env.PYTHON_CONFIG,package='',uselib_store='PYEXT',args=flags)
++ conf.check(header_name='Python.h',define_name='HAVE_PYEXT',msg='Getting pyext flags from python-config',features='%s %sshlib pyext'%(xx,xx),fragment=FRAG,errmsg='Could not build python extensions')
+ conf.define('HAVE_PYTHON_H',1)
+ return
+ all_flags=dct['LDFLAGS']+' '+dct['CFLAGS']
@@ -10426,7 +10573,7 @@ Last-Update: 2014-11-28
+ (python_LIBDEST,pydir)=conf.get_python_variables(["get_config_var('LIBDEST') or ''","get_python_lib(standard_lib=0) or ''"])
+ else:
+ python_LIBDEST=None
-+ (pydir,)=conf.get_python_variables(["get_python_lib(standard_lib=0) or ''"])
++ (pydir,)=conf.get_python_variables(["get_python_lib(standard_lib=0, prefix=%r) or ''"%conf.env.PREFIX])
+ if python_LIBDEST is None:
+ if conf.env['LIBDIR']:
+ python_LIBDEST=os.path.join(conf.env['LIBDIR'],"python"+pyver)
@@ -10437,7 +10584,7 @@ Last-Update: 2014-11-28
+ elif'PYTHONARCHDIR'in conf.environ:
+ pyarchdir=conf.environ['PYTHONARCHDIR']
+ else:
-+ (pyarchdir,)=conf.get_python_variables(["get_python_lib(plat_specific=1, standard_lib=0) or ''"])
++ (pyarchdir,)=conf.get_python_variables(["get_python_lib(plat_specific=1, standard_lib=0, prefix=%r) or ''"%conf.env.PREFIX])
+ if not pyarchdir:
+ pyarchdir=pydir
+ if hasattr(conf,'define'):
@@ -10520,7 +10667,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,441 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+try:
+ from xml.sax import make_parser
@@ -10961,10 +11108,10 @@ Last-Update: 2014-11-28
+ opt.add_option('--translate',action="store_true",help="collect translation strings",dest="trans_qt4",default=False)
--- /dev/null
+++ b/waflib/Tools/qt5.py
-@@ -0,0 +1,474 @@
+@@ -0,0 +1,488 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+try:
+ from xml.sax import make_parser
@@ -11269,11 +11416,25 @@ Last-Update: 2014-11-28
+ if new_ver>prev_ver:
+ cand=qmake
+ prev_ver=new_ver
++ if not cand:
++ try:
++ self.find_program('qtchooser')
++ except self.errors.ConfigurationError:
++ pass
++ else:
++ cmd=self.env.QTCHOOSER+['-qt=5','-run-tool=qmake']
++ try:
++ version=self.cmd_and_log(cmd+['-query','QT_VERSION'])
++ except self.errors.WafError:
++ pass
++ else:
++ cand=cmd
+ if cand:
+ self.env.QMAKE=cand
+ else:
+ self.fatal('Could not find qmake for qt5')
-+ qtbin=self.cmd_and_log(self.env.QMAKE+['-query','QT_INSTALL_BINS']).strip()+os.sep
++ self.env.QT_INSTALL_BINS=qtbin=self.cmd_and_log(self.env.QMAKE+['-query','QT_INSTALL_BINS']).strip()+os.sep
++ paths.insert(0,qtbin)
+ def find_bin(lst,var):
+ if var in env:
+ return
@@ -11289,7 +11450,7 @@ Last-Update: 2014-11-28
+ if not env.QT_UIC:
+ self.fatal('cannot find the uic compiler for qt5')
+ self.start_msg('Checking for uic version')
-+ uicver=self.cmd_and_log(env.QT_UIC+["-version"],output=Context.BOTH)
++ uicver=self.cmd_and_log(env.QT_UIC+['-version'],output=Context.BOTH)
+ uicver=''.join(uicver).strip()
+ uicver=uicver.replace('Qt User Interface Compiler ','').replace('User Interface Compiler for Qt','')
+ self.end_msg(uicver)
@@ -11360,7 +11521,7 @@ Last-Update: 2014-11-28
+ self.msg('Checking for %s'%i,False,'YELLOW')
+ env.append_unique('LIBPATH_'+uselib,qtlibs)
+ env.append_unique('INCLUDES_'+uselib,qtincludes)
-+ env.append_unique('INCLUDES_'+uselib,os.path.join(qtincludes,i))
++ env.append_unique('INCLUDES_'+uselib,os.path.join(qtincludes,i.replace('Qt5','Qt')))
+ uselib=i.upper()+"_debug"
+ for k in("lib%sd.a","lib%sd5.a","%sd.lib","%sd5.lib"):
+ lib=os.path.join(qtlibs,k%i)
@@ -11372,7 +11533,7 @@ Last-Update: 2014-11-28
+ self.msg('Checking for %s'%i,False,'YELLOW')
+ env.append_unique('LIBPATH_'+uselib,qtlibs)
+ env.append_unique('INCLUDES_'+uselib,qtincludes)
-+ env.append_unique('INCLUDES_'+uselib,os.path.join(qtincludes,i))
++ env.append_unique('INCLUDES_'+uselib,os.path.join(qtincludes,i.replace('Qt5','Qt')))
+ else:
+ for i in self.qt5_vars_debug+self.qt5_vars:
+ self.check_cfg(package=i,args='--cflags --libs',mandatory=False)
@@ -11427,7 +11588,7 @@ Last-Update: 2014-11-28
+ if sys.platform!='win32':
+ return
+ for x in self.qt5_vars:
-+ y=x[2:].upper()
++ y=x.replace('Qt5','Qt')[2:].upper()
+ self.env.append_unique('DEFINES_%s'%x.upper(),'QT_%s_LIB'%y)
+ self.env.append_unique('DEFINES_%s_DEBUG'%x.upper(),'QT_%s_LIB'%y)
+def options(opt):
@@ -11441,7 +11602,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,103 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os
+from waflib import Task,Options,Utils
@@ -11494,7 +11655,7 @@ Last-Update: 2014-11-28
+ def read_out(cmd):
+ return Utils.to_list(self.cmd_and_log(self.env.RUBY+['-rrbconfig','-e',cmd]))
+ def read_config(key):
-+ return read_out('puts Config::CONFIG[%r]'%key)
++ return read_out('puts RbConfig::CONFIG[%r]'%key)
+ ruby=self.env['RUBY']
+ archdir=read_config('archdir')
+ cpppath=archdir
@@ -11544,29 +11705,23 @@ Last-Update: 2014-11-28
+ opt.add_option('--with-ruby-binary',type='string',dest='rubybinary',help='Specify alternate ruby binary')
--- /dev/null
+++ b/waflib/Tools/suncc.py
-@@ -0,0 +1,53 @@
+@@ -0,0 +1,47 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
-+import os
+from waflib import Utils
+from waflib.Tools import ccroot,ar
+from waflib.Configure import conf
+ at conf
+def find_scc(conf):
+ v=conf.env
-+ cc=None
-+ if v['CC']:cc=v['CC']
-+ elif'CC'in conf.environ:cc=conf.environ['CC']
-+ if not cc:cc=conf.find_program('cc',var='CC')
-+ if not cc:conf.fatal('Could not find a Sun C compiler')
++ cc=conf.find_program('cc',var='CC')
+ try:
+ conf.cmd_and_log(cc+['-flags'])
+ except Exception:
+ conf.fatal('%r is not a Sun compiler'%cc)
-+ v['CC']=cc
-+ v['CC_NAME']='sun'
++ v.CC_NAME='sun'
+ conf.get_suncc_version(cc)
+ at conf
+def scc_common_flags(conf):
@@ -11600,30 +11755,23 @@ Last-Update: 2014-11-28
+ conf.link_add_flags()
--- /dev/null
+++ b/waflib/Tools/suncxx.py
-@@ -0,0 +1,54 @@
+@@ -0,0 +1,47 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
-+import os
+from waflib import Utils
+from waflib.Tools import ccroot,ar
+from waflib.Configure import conf
+ at conf
+def find_sxx(conf):
+ v=conf.env
-+ cc=None
-+ if v['CXX']:cc=v['CXX']
-+ elif'CXX'in conf.environ:cc=conf.environ['CXX']
-+ if not cc:cc=conf.find_program('CC',var='CXX')
-+ if not cc:cc=conf.find_program('c++',var='CXX')
-+ if not cc:conf.fatal('Could not find a Sun C++ compiler')
++ cc=conf.find_program(['CC','c++'],var='CXX')
+ try:
+ conf.cmd_and_log(cc+['-flags'])
+ except Exception:
+ conf.fatal('%r is not a Sun compiler'%cc)
-+ v['CXX']=cc
-+ v['CXX_NAME']='sun'
++ v.CXX_NAME='sun'
+ conf.get_suncc_version(cc)
+ at conf
+def sxx_common_flags(conf):
@@ -11660,7 +11808,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,318 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os,re
+from waflib import Utils,Task,Errors,Logs,Node
@@ -11981,7 +12129,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,201 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os.path,shutil,re
+from waflib import Context,Task,Utils,Logs,Options,Errors
@@ -12014,15 +12162,15 @@ Last-Update: 2014-11-28
+ self.env.append_value('VALAFLAGS',flags)
+ if self.profile:
+ addflags('--profile=%s'%self.profile)
-+ if hasattr(self,'threading'):
++ if hasattr(self,'thread'):
+ if self.profile=='gobject':
+ if not'GTHREAD'in self.uselib:
+ self.uselib.append('GTHREAD')
+ else:
+ Logs.warn("Profile %s means no threading support"%self.profile)
-+ self.threading=False
-+ if self.threading:
-+ addflags('--threading')
++ self.thread=False
++ if self.thread:
++ addflags('--thread')
+ valatask=self.valatask
+ self.is_lib='cprogram'not in self.features
+ if self.is_lib:
@@ -12185,7 +12333,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,101 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os
+from waflib.TaskGen import feature,after_method,taskgen_method
@@ -12289,7 +12437,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,85 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import re,traceback
+from waflib import Task,Logs,Utils
@@ -12374,10 +12522,10 @@ Last-Update: 2014-11-28
+ v['WINRCFLAGS']=[]
--- /dev/null
+++ b/waflib/Tools/xlc.py
-@@ -0,0 +1,44 @@
+@@ -0,0 +1,43 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib.Tools import ccroot,ar
+from waflib.Configure import conf
@@ -12386,7 +12534,6 @@ Last-Update: 2014-11-28
+ cc=conf.find_program(['xlc_r','xlc'],var='CC')
+ conf.get_xlc_version(cc)
+ conf.env.CC_NAME='xlc'
-+ conf.env.CC=cc
+ at conf
+def xlc_common_flags(conf):
+ v=conf.env
@@ -12421,10 +12568,10 @@ Last-Update: 2014-11-28
+ conf.link_add_flags()
--- /dev/null
+++ b/waflib/Tools/xlcxx.py
-@@ -0,0 +1,44 @@
+@@ -0,0 +1,43 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+from waflib.Tools import ccroot,ar
+from waflib.Configure import conf
@@ -12433,7 +12580,6 @@ Last-Update: 2014-11-28
+ cxx=conf.find_program(['xlc++_r','xlc++'],var='CXX')
+ conf.get_xlc_version(cxx)
+ conf.env.CXX_NAME='xlc++'
-+ conf.env.CXX=cxx
+ at conf
+def xlcxx_common_flags(conf):
+ v=conf.env
@@ -12468,12 +12614,12 @@ Last-Update: 2014-11-28
+ conf.link_add_flags()
--- /dev/null
+++ b/waflib/Utils.py
-@@ -0,0 +1,435 @@
+@@ -0,0 +1,441 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
-+import os,sys,errno,traceback,inspect,re,shutil,datetime,gc
++import os,sys,errno,traceback,inspect,re,shutil,datetime,gc,platform
+import subprocess
+from collections import deque,defaultdict
+try:
@@ -12551,7 +12697,7 @@ Last-Update: 2014-11-28
+ yield x
+ def keys(self):
+ return self.lst
-+is_win32=sys.platform in('win32','cli','os2')
++is_win32=os.sep=='\\'or sys.platform=='win32'
+def readf(fname,m='r',encoding='ISO8859-1'):
+ if sys.hexversion>0x3000000 and not'b'in m:
+ m+='b'
@@ -12813,7 +12959,7 @@ Last-Update: 2014-11-28
+ return'elf'
+def unversioned_sys_platform():
+ s=sys.platform
-+ if s=='java':
++ if s.startswith('java'):
+ from java.lang import System
+ s=System.getProperty('os.name')
+ if s=='Mac OS X':
@@ -12823,7 +12969,7 @@ Last-Update: 2014-11-28
+ elif s=='OS/2':
+ return'os2'
+ elif s=='HP-UX':
-+ return'hpux'
++ return'hp-ux'
+ elif s in('SunOS','Solaris'):
+ return'sunos'
+ else:s=s.lower()
@@ -12904,23 +13050,29 @@ Last-Update: 2014-11-28
+ else:
+ if os.path.isfile(result):
+ return result
++def lib64():
++ if os.sep=='/':
++ if platform.architecture()[0]=='64bit':
++ if os.path.exists('/usr/lib64')and not os.path.exists('/usr/lib32'):
++ return'64'
++ return''
--- /dev/null
+++ b/waflib/__init__.py
@@ -0,0 +1,4 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
--- /dev/null
+++ b/waflib/ansiterm.py
@@ -0,0 +1,238 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
-+import re,sys
-+from waflib.Utils import threading
-+wlock=threading.Lock()
++import os,re,sys
++from waflib import Utils
++wlock=Utils.threading.Lock()
+try:
+ from ctypes import Structure,windll,c_short,c_ushort,c_ulong,c_int,byref,c_wchar,POINTER,c_long
+except ImportError:
@@ -13108,7 +13260,7 @@ Last-Update: 2014-11-28
+ finally:
+ wlock.release()
+ def writeconsole(self,txt):
-+ chars_written=c_int()
++ chars_written=c_ulong()
+ writeconsole=windll.kernel32.WriteConsoleA
+ if isinstance(txt,_type):
+ writeconsole=windll.kernel32.WriteConsoleW
@@ -13142,7 +13294,7 @@ Last-Update: 2014-11-28
+except ImportError:
+ pass
+else:
-+ if sys.stdout.isatty()or sys.stderr.isatty():
++ if(sys.stdout.isatty()or sys.stderr.isatty())and os.environ.get('TERM','')not in('dumb','emacs'):
+ FD=sys.stdout.isatty()and sys.stdout.fileno()or sys.stderr.fileno()
+ def fun():
+ return struct.unpack("HHHH",fcntl.ioctl(FD,termios.TIOCGWINSZ,struct.pack("HHHH",0,0,0,0)))[1]
@@ -13157,14 +13309,14 @@ Last-Update: 2014-11-28
@@ -0,0 +1,4 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
--- /dev/null
+++ b/waflib/extras/compat15.py
@@ -0,0 +1,279 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import sys
+from waflib import ConfigSet,Logs,Options,Scripting,Task,Build,Configure,Node,Runner,TaskGen,Utils,Errors,Context
@@ -13446,7 +13598,7 @@ Last-Update: 2014-11-28
@@ -0,0 +1,53 @@
+#! /usr/bin/env python
+# encoding: utf-8
-+# WARNING! Do not edit! http://waf.googlecode.com/git/docs/wafbook/single.html#_obtaining_the_waf_file
++# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file
+
+import os
+all_modifs={}
--
mpv packaging
More information about the pkg-multimedia-commits
mailing list