From 924f8bbce893de3b1c13cbecc846ec5376d538a8 Mon Sep 17 00:00:00 2001 From: Thomas Nagy Date: Wed, 22 Apr 2015 21:34:45 +0200 Subject: [PATCH] Inserting LDFLAGS at the end of the command-line causes less overhead than expected, and LINKFLAGS can still be used for flags in the beginning of the line --- waflib/Tools/c.py | 4 ++-- waflib/Tools/c_config.py | 8 ++++---- waflib/Tools/cxx.py | 4 ++-- waflib/Tools/fc.py | 10 ++++------ waflib/Tools/fc_config.py | 5 +++-- 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/waflib/Tools/c.py b/waflib/Tools/c.py index b97eee15..0b06a7fa 100644 --- a/waflib/Tools/c.py +++ b/waflib/Tools/c.py @@ -4,7 +4,7 @@ "Base for c programs/libraries" -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 @@ -24,7 +24,7 @@ class c(Task.Task): class cprogram(link_task): "Link object files into a c program" - 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}' diff --git a/waflib/Tools/c_config.py b/waflib/Tools/c_config.py index 7294eb9e..e9c22204 100755 --- a/waflib/Tools/c_config.py +++ b/waflib/Tools/c_config.py @@ -929,7 +929,7 @@ def get_config_header(self, defines=True, headers=False, define_prefix=''): @conf def cc_add_flags(conf): """ - Read the CFLAGS/CPPFLAGS from os.environ and add to conf.env.CFLAGS + Add CFLAGS / CPPFLAGS from os.environ to conf.env """ conf.add_os_flags('CPPFLAGS', 'CFLAGS') conf.add_os_flags('CFLAGS') @@ -937,7 +937,7 @@ def cc_add_flags(conf): @conf def cxx_add_flags(conf): """ - Read the CXXFLAGS/CPPFLAGS and add to conf.env.CXXFLAGS + Add CXXFLAGS / CPPFLAGS from os.environ to conf.env """ conf.add_os_flags('CPPFLAGS', 'CXXFLAGS') conf.add_os_flags('CXXFLAGS') @@ -945,10 +945,10 @@ def cxx_add_flags(conf): @conf def link_add_flags(conf): """ - Read the LINKFLAGS/LDFLAGS and add to conf.env.LDFLAGS + Add LINKFLAGS / LDFLAGS from os.environ to conf.env """ conf.add_os_flags('LINKFLAGS') - conf.add_os_flags('LDFLAGS', 'LINKFLAGS') + conf.add_os_flags('LDFLAGS') @conf def cc_load_tools(conf): diff --git a/waflib/Tools/cxx.py b/waflib/Tools/cxx.py index 9e1777d4..311c1e52 100644 --- a/waflib/Tools/cxx.py +++ b/waflib/Tools/cxx.py @@ -4,7 +4,7 @@ "Base for c++ programs and libraries" -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 @@ -25,7 +25,7 @@ class cxx(Task.Task): class cxxprogram(link_task): "Link object files into a c++ program" - 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}' diff --git a/waflib/Tools/fc.py b/waflib/Tools/fc.py index 829b335a..15010e0f 100644 --- a/waflib/Tools/fc.py +++ b/waflib/Tools/fc.py @@ -7,11 +7,9 @@ fortran support """ -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']) @@ -152,7 +150,7 @@ class fc(Task.Task): class fcprogram(ccroot.link_task): """Link fortran programs""" 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): @@ -183,7 +181,7 @@ class fcprogram_test(fcprogram): kw['output'] = 0 try: (bld.out, bld.err) = bld.cmd_and_log(cmd, **kw) - except Exception as e: + except Exception: return -1 if bld.out: diff --git a/waflib/Tools/fc_config.py b/waflib/Tools/fc_config.py index d8c9ac93..76a547a5 100644 --- a/waflib/Tools/fc_config.py +++ b/waflib/Tools/fc_config.py @@ -49,10 +49,11 @@ def fc_flags(conf): @conf def fc_add_flags(conf): """ - FCFLAGS? + Add FCFLAGS / LDFLAGS / LINKFLAGS from os.environ to conf.env """ conf.add_os_flags('FCFLAGS') - conf.add_os_flags('LDFLAGS', 'LINKFLAGS') + conf.add_os_flags('LINKFLAGS') + conf.add_os_flags('LDFLAGS') @conf def check_fortran(self, *k, **kw):