diff options
Diffstat (limited to 'waflib/Tools/gnu_dirs.py')
-rw-r--r-- | waflib/Tools/gnu_dirs.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/waflib/Tools/gnu_dirs.py b/waflib/Tools/gnu_dirs.py new file mode 100644 index 0000000..21a6288 --- /dev/null +++ b/waflib/Tools/gnu_dirs.py @@ -0,0 +1,66 @@ +#! /usr/bin/env python +# encoding: utf-8 +# WARNING! Do not edit! https://waf.io/book/index.html#_obtaining_the_waf_file + +import os,re +from waflib import Utils,Options,Context +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%s +includedir, header files, ${PREFIX}/include +oldincludedir, header files for non-GCC compilers, /usr/include +datarootdir, architecture-independent data root, ${PREFIX}/share +datadir, architecture-independent data, ${DATAROOTDIR} +infodir, GNU "info" documentation, ${DATAROOTDIR}/info +localedir, locale-dependent data, ${DATAROOTDIR}/locale +mandir, manual pages, ${DATAROOTDIR}/man +docdir, documentation root, ${DATAROOTDIR}/doc/${PACKAGE} +htmldir, HTML documentation, ${DOCDIR} +dvidir, DVI documentation, ${DOCDIR} +pdfdir, PDF documentation, ${DOCDIR} +psdir, PostScript documentation, ${DOCDIR} +'''%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 + env=conf.env + env.LIBDIR=env.BINDIR=[] + env.EXEC_PREFIX=get_param('EXEC_PREFIX',env.PREFIX) + env.PACKAGE=getattr(Context.g_module,'APPNAME',None)or env.PACKAGE + complete=False + iter=0 + while not complete and iter<len(_options)+1: + iter+=1 + complete=True + for name,help,default in _options: + name=name.upper() + if not env[name]: + try: + env[name]=Utils.subst_vars(get_param(name,default).replace('/',os.sep),env) + except TypeError: + complete=False + if not complete: + 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\ + "/usr/local/bin", "/usr/local/lib" etc. An installation prefix other\ + than "/usr/local" can be given using "--prefix", for example "--prefix=$HOME"') + for k in('--prefix','--destdir'): + option=opt.parser.get_option(k) + if option: + opt.parser.remove_option(k) + inst_dir.add_option(option) + inst_dir.add_option('--exec-prefix',help='installation prefix for binaries [PREFIX]',default='',dest='EXEC_PREFIX') + dirs_options=opt.add_option_group('Installation directories') + for name,help,default in _options: + option_name='--'+name + str_default=default + str_help='%s [%s]'%(help,re.sub(r'\$\{([^}]+)\}',r'\1',str_default)) + dirs_options.add_option(option_name,help=str_help,default='',dest=name.upper()) |