diff --git a/waflib/Tools/ccroot.py b/waflib/Tools/ccroot.py index 0b872d85..30577477 100644 --- a/waflib/Tools/ccroot.py +++ b/waflib/Tools/ccroot.py @@ -682,3 +682,19 @@ def read_object(self, obj): if not isinstance(obj, self.path.__class__): obj = self.path.find_resource(obj) return self(features='fake_obj', source=obj, name=obj.name) + +@feature('cxxprogram', 'cprogram') +@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 + diff --git a/waflib/Tools/compiler_c.py b/waflib/Tools/compiler_c.py index 548f0a68..69c808f2 100644 --- a/waflib/Tools/compiler_c.py +++ b/waflib/Tools/compiler_c.py @@ -44,6 +44,7 @@ c_compiler = { 'sunos': ['suncc', 'gcc'], 'irix': ['gcc', 'irixcc'], 'hpux': ['gcc'], +'osf1V': ['gcc'], 'gnu': ['gcc', 'clang'], 'java': ['gcc', 'msvc', 'clang', 'icc'], 'default':['gcc', 'clang'], diff --git a/waflib/Tools/compiler_cxx.py b/waflib/Tools/compiler_cxx.py index db94c0ef..4b15b9e3 100644 --- a/waflib/Tools/compiler_cxx.py +++ b/waflib/Tools/compiler_cxx.py @@ -45,6 +45,7 @@ cxx_compiler = { 'sunos': ['sunc++', 'g++'], 'irix': ['g++'], 'hpux': ['g++'], +'osf1V': ['g++'], 'gnu': ['g++', 'clang++'], 'java': ['g++', 'msvc', 'clang++', 'icpc'], 'default': ['g++', 'clang++'] diff --git a/waflib/Tools/gcc.py b/waflib/Tools/gcc.py index 4d9bdf57..0de826a2 100644 --- a/waflib/Tools/gcc.py +++ b/waflib/Tools/gcc.py @@ -121,7 +121,7 @@ def gcc_modifier_aix(conf): 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' @@ -129,6 +129,12 @@ def gcc_modifier_hpux(conf): def gcc_modifier_openbsd(conf): conf.env.SONAME_ST = [] +@conf +def gcc_modifier_osf1V(conf): + v['SHLIB_MARKER'] = [] + v['STLIB_MARKER'] = [] + v['SONAME_ST'] = [] + @conf def gcc_modifier_platform(conf): """Execute platform-specific functions based on *gcc_modifier_+NAME*""" diff --git a/waflib/Tools/gxx.py b/waflib/Tools/gxx.py index 88183522..b6f692cb 100644 --- a/waflib/Tools/gxx.py +++ b/waflib/Tools/gxx.py @@ -122,7 +122,7 @@ def gxx_modifier_aix(conf): 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' @@ -130,6 +130,12 @@ def gxx_modifier_hpux(conf): def gxx_modifier_openbsd(conf): conf.env.SONAME_ST = [] +@conf +def gcc_modifier_osf1V(conf): + v['SHLIB_MARKER'] = [] + v['STLIB_MARKER'] = [] + v['SONAME_ST'] = [] + @conf def gxx_modifier_platform(conf): """Execute platform-specific functions based on *gxx_modifier_+NAME*""" diff --git a/waflib/Utils.py b/waflib/Utils.py index fc252c14..05761070 100644 --- a/waflib/Utils.py +++ b/waflib/Utils.py @@ -585,7 +585,7 @@ def unversioned_sys_platform(): 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()