photos-f: new package (Fortran version) (#26703)
This commit is contained in:
parent
c47eb7217e
commit
81c272fcb7
44
var/spack/repos/builtin/packages/photos-f/package.py
Normal file
44
var/spack/repos/builtin/packages/photos-f/package.py
Normal file
@ -0,0 +1,44 @@
|
||||
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
import os
|
||||
import shutil
|
||||
from glob import glob
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class PhotosF(MakefilePackage):
|
||||
"""PHOTOS Monte-Carlo generator (Fortran version)"""
|
||||
|
||||
homepage = "https://wasm.web.cern.ch/wasm/f77.html"
|
||||
url = "http://cern.ch/service-spi/external/MCGenerators/distribution/photos/photos-215.5-src.tgz"
|
||||
|
||||
maintainers = ['iarspider']
|
||||
|
||||
version('215.5', sha256='3e2b3f60ffe2d3a6a95cf2f156aa24b93e1fa3c439a85fa0ae780ca2f6e0dbb5')
|
||||
|
||||
patch('photos-215.5-update-configure.patch', level=2)
|
||||
|
||||
def do_stage(self, mirror_only=False):
|
||||
# Fix directory structure - remove extra "<version>" subdirectory
|
||||
super(PhotosF, self).do_stage(mirror_only)
|
||||
root = join_path(self.stage.source_path, self.spec.version)
|
||||
for fn in os.listdir(root):
|
||||
shutil.move(join_path(root, fn), self.stage.source_path)
|
||||
shutil.rmtree(root)
|
||||
|
||||
def edit(self, spec, prefix):
|
||||
configure_ = Executable('./configure')
|
||||
configure_('--enable-static', '--disable-shared')
|
||||
if self.spec.satisfies('platform=darwin'):
|
||||
filter_file('libphotos.so', 'libphotos.dylib', 'Makefile')
|
||||
|
||||
def install(self, spec, prefix):
|
||||
install_tree('lib', prefix.lib)
|
||||
install_tree('include', prefix.include)
|
||||
for fn in glob(join_path(prefix.lib.archive, '*.a')):
|
||||
install(fn, prefix.lib)
|
||||
shutil.rmtree(prefix.lib.archive)
|
@ -0,0 +1,73 @@
|
||||
diff --git a/215.5/Makefile b/215.5/Makefile
|
||||
index 648424f..73b5dce 100644
|
||||
--- a/215.5/Makefile
|
||||
+++ b/215.5/Makefile
|
||||
@@ -11,6 +11,8 @@ SHELL = /bin/sh
|
||||
#
|
||||
FFLAGSSHARED = -fPIC
|
||||
CFLAGSSHARED = -fPIC
|
||||
+FFLAGS = -fPIC
|
||||
+CFLAGS = -fPIC
|
||||
#
|
||||
LDFLAGSSHARED = $(CXXFLAGS) -pthread -fPIC
|
||||
|
||||
diff --git a/215.5/Makeshared.subdir b/215.5/Makeshared.subdir
|
||||
index f167145..0a8f232 100644
|
||||
--- a/215.5/Makeshared.subdir
|
||||
+++ b/215.5/Makeshared.subdir
|
||||
@@ -42,7 +42,14 @@ objects += $(patsubst $(DIRNAME)/%.c,$(TMPDIR)/%.o,$(wildcard $(DIRNAME)/*.c))
|
||||
$(LIBNAME): $(objects)
|
||||
@mkdir -p $(LIBDIR)
|
||||
@echo creating the shared library $@
|
||||
- $(CXX) $(LDFLAGSSHARED) $(objects) -o $@ -shared -Wl,-soname,$(notdir $@)
|
||||
+ case ${ARCH} in \
|
||||
+ Linux-*) \
|
||||
+ $(CXX) $(LDFLAGSSHARED) $(objects) -o $@ -shared -Wl,-soname,$(notdir $@) \
|
||||
+ ;;\
|
||||
+ Darwin-*) \
|
||||
+ $(CXX) $(LDFLAGSSHARED) $(objects) -Wl,-commons,use_dylibs -o $@ -shared -L$(dir $(shell gfortran --print-file-name=libgfortran.a)) $(FLIBS) -dynamic \
|
||||
+ ;; \
|
||||
+ esac
|
||||
|
||||
deps := $(patsubst $(DIRNAME)/%.F,$(TMPDIR)/%.d,$(wildcard $(DIRNAME)/*.F))
|
||||
|
||||
diff --git a/215.5/configure b/215.5/configure
|
||||
index c8382cc..105950e 100755
|
||||
--- a/215.5/configure
|
||||
+++ b/215.5/configure
|
||||
@@ -74,10 +74,6 @@ export CXXFLAGS_DBG="-g -ansi -pedantic -W -Wall"
|
||||
# Find platform.
|
||||
#
|
||||
export ARCH="`uname`"
|
||||
-export theGcc=`g++ --version | head -n 1 | awk '{print$3}' | awk -F . '{print $1}'`
|
||||
-if [ ${theGcc} = 4 ]; then
|
||||
- export ARCH=${ARCH}-gcc4
|
||||
-fi
|
||||
echo Platform is $ARCH
|
||||
|
||||
#default platform settings:
|
||||
@@ -98,24 +94,6 @@ if [ ${COMPMODE} = DBG ]; then
|
||||
export CXXFLAGS="${CXXFLAGS_DBG}"
|
||||
fi
|
||||
if [ $ARCH = Linux ]; then
|
||||
- export FC=g77
|
||||
- export FFLAGS="${FFLAGS_OPT} -Wno-globals"
|
||||
- export CFLAGS="${CFLAGS_OPT}"
|
||||
- export CXXFLAGS="${CXXFLAGS_OPT}"
|
||||
- export FLIBS="-lfrtbegin -lg2c"
|
||||
- if [ ${COMPMODE} = OPT ]; then
|
||||
- export FFLAGS="${FFLAGS_OPT}"
|
||||
- export CFLAGS="${CFLAGS_OPT}"
|
||||
- export CXXFLAGS="${CXXFLAGS_OPT}"
|
||||
- fi
|
||||
- if [ ${COMPMODE} = DBG ]; then
|
||||
- export FFLAGS="${FFLAGS_DBG} -Wno-globals"
|
||||
- export CFLAGS="${CFLAGS_DBG}"
|
||||
- export CXXFLAGS="${CXXFLAGS_DBG}"
|
||||
- fi
|
||||
-fi
|
||||
-# Linux platform with gcc4: new Fortran90 compiler.
|
||||
-if [ $ARCH = Linux-gcc4 ]; then
|
||||
export FC=gfortran
|
||||
export FFLAGS="${FFLAGS_OPT}"
|
||||
export CFLAGS="${CFLAGS_OPT}"
|
Loading…
Reference in New Issue
Block a user