summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorDenis Davydov <davydden@gmail.com>2016-11-27 01:48:50 +0100
committerTodd Gamblin <tgamblin@llnl.gov>2016-11-26 16:48:50 -0800
commitb47bd9cc00d06c4d35bdef3f5f573574e49127e1 (patch)
tree834a7f7f554dad722a014e6d631ca590888a6dd9 /var
parenteeb9c84677a0ee524d62432ca4ca46de8a522574 (diff)
downloadspack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.tar.gz
spack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.tar.bz2
spack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.tar.xz
spack-b47bd9cc00d06c4d35bdef3f5f573574e49127e1.zip
scotch: fix compilation on macOS (#2326)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/scotch/package.py35
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))