diff options
author | Denis Davydov <davydden@gmail.com> | 2016-11-27 01:48:50 +0100 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2016-11-26 16:48:50 -0800 |
commit | b47bd9cc00d06c4d35bdef3f5f573574e49127e1 (patch) | |
tree | 834a7f7f554dad722a014e6d631ca590888a6dd9 | |
parent | eeb9c84677a0ee524d62432ca4ca46de8a522574 (diff) | |
download | spack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.tar.gz spack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.tar.bz2 spack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.tar.xz spack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.zip |
scotch: fix compilation on macOS (#2326)
-rw-r--r-- | var/spack/repos/builtin/packages/scotch/package.py | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/var/spack/repos/builtin/packages/scotch/package.py b/var/spack/repos/builtin/packages/scotch/package.py index 94a323ce90..58bbcd8383 100644 --- a/var/spack/repos/builtin/packages/scotch/package.py +++ b/var/spack/repos/builtin/packages/scotch/package.py @@ -85,16 +85,29 @@ class Scotch(Package): '-DIDXSIZE64' ] + if self.spec.satisfies('platform=darwin'): + cflags.extend([ + '-Drestrict=__restrict' + ]) + # Library Build Type # if '+shared' in self.spec: - makefile_inc.extend([ - # todo change for Darwin systems - 'LIB = .so', - 'CLIBFLAGS = -shared -fPIC', - 'RANLIB = echo', - 'AR = $(CC)', - 'ARFLAGS = -shared $(LDFLAGS) -o' - ]) + if self.spec.satisfies('platform=darwin'): + makefile_inc.extend([ + 'LIB = .dylib', + 'CLIBFLAGS = -dynamiclib -fPIC', + 'RANLIB = echo', + 'AR = $(CC)', + 'ARFLAGS = -dynamiclib $(LDFLAGS) -Wl,-install_name -Wl,%s/$(notdir $@) -undefined dynamic_lookup -o ' % prefix.lib # noqa + ]) + else: + makefile_inc.extend([ + 'LIB = .so', + 'CLIBFLAGS = -shared -fPIC', + 'RANLIB = echo', + 'AR = $(CC)', + 'ARFLAGS = -shared $(LDFLAGS) -o' + ]) cflags.append('-fPIC') else: makefile_inc.extend([ @@ -126,7 +139,11 @@ class Scotch(Package): ldflags.append('-L%s -lz' % (self.spec['zlib'].prefix.lib)) cflags.append('-DCOMMON_PTHREAD') - ldflags.append('-lm -lrt -pthread') + if self.spec.satisfies('platform=darwin'): + cflags.append('-DCOMMON_PTHREAD_BARRIER') + ldflags.append('-lm -pthread') + else: + ldflags.append('-lm -lrt -pthread') makefile_inc.append('LDFLAGS = %s' % ' '.join(ldflags)) |