summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/nasm/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/nasm/package.py')
-rw-r--r--var/spack/repos/builtin/packages/nasm/package.py33
1 files changed, 30 insertions, 3 deletions
diff --git a/var/spack/repos/builtin/packages/nasm/package.py b/var/spack/repos/builtin/packages/nasm/package.py
index 2f0c747a52..6bfa36a660 100644
--- a/var/spack/repos/builtin/packages/nasm/package.py
+++ b/var/spack/repos/builtin/packages/nasm/package.py
@@ -5,17 +5,20 @@
from spack import *
+is_windows = str(spack.platforms.host()) == 'windows'
-class Nasm(AutotoolsPackage):
+
+class Nasm(Package):
"""NASM (Netwide Assembler) is an 80x86 assembler designed for
portability and modularity. It includes a disassembler as well."""
homepage = "https://www.nasm.us"
- url = "https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.xz"
+ url = "https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.gz"
list_url = "https://www.nasm.us/pub/nasm/releasebuilds"
list_depth = 1
+ a = '3caf6729c1073bf96629b57cee31eeb54f4f8129b01902c73428836550b30a3f'
- version('2.15.05', sha256='3caf6729c1073bf96629b57cee31eeb54f4f8129b01902c73428836550b30a3f')
+ version('2.15.05', sha256='9182a118244b058651c576baa9d0366ee05983c4d4ae1d9ddd3236a9f2304997')
version('2.14.02', sha256='e24ade3e928f7253aa8c14aa44726d1edf3f98643f87c9d72ec1df44b26be8f5')
version('2.13.03', sha256='812ecfb0dcbc5bd409aaa8f61c7de94c5b8752a7b00c632883d15b2ed6452573')
version('2.11.06', sha256='90f60d95a15b8a54bf34d87b9be53da89ee3d6213ea739fb2305846f4585868a')
@@ -24,9 +27,13 @@ class Nasm(AutotoolsPackage):
# https://bugzilla.nasm.us/show_bug.cgi?id=3392461
patch('https://src.fedoraproject.org/rpms/nasm/raw/0cc3eb244bd971df81a7f02bc12c5ec259e1a5d6/f/0001-Remove-invalid-pure_func-qualifiers.patch', level=1, sha256='ac9f315d204afa6b99ceefa1fe46d4eed2b8a23c7315d32d33c0f378d930e950', when='@2.13.03 %gcc@8:')
+ patch('msvc.mak.patch', when='platform=windows')
+
conflicts('%intel@:14', when='@2.14:',
msg="Intel 14 has immature C11 support")
+ phases = ['configure', 'build', 'install']
+
def patch(self):
# Remove flags not recognized by the NVIDIA compiler
if self.spec.satisfies('%nvhpc@:20.11'):
@@ -34,3 +41,23 @@ class Nasm(AutotoolsPackage):
'CFLAGS="$pa_add_cflags__old_cflags"', 'configure')
filter_file(r'CFLAGS="\$pa_add_flags__old_flags -Werror=.*"',
'CFLAGS="$pa_add_flags__old_flags"', 'configure')
+
+ def configure(self, spec, prefix):
+ with working_dir(self.stage.source_path, create=True):
+ if not is_windows:
+ configure(['--prefix={0}'.format(self.prefix)])
+
+ def build(self, spec, prefix):
+ with working_dir(self.stage.source_path):
+ if is_windows:
+ touch('asm\\warnings.time')
+ nmake('/f', 'Mkfiles\\msvc.mak')
+ else:
+ make(['V=1'])
+
+ def install(self, spec, prefix):
+ with working_dir(self.stage.source_path):
+ if is_windows:
+ pass
+ else:
+ make(['install'])