flex: create variant +lex that creates symlinks for lex and libl.{a,so} (#3894)
* flex: create variant +lex that creates symlinks for lex and libl.{a,so} * flex: enable variant +lex by default * flex: use dso_suffix for portability; replace repetitive code with a loop
This commit is contained in:
parent
e4a3295c37
commit
ca2755d532
@ -23,6 +23,7 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
##############################################################################
|
##############################################################################
|
||||||
from spack import *
|
from spack import *
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
class Flex(AutotoolsPackage):
|
class Flex(AutotoolsPackage):
|
||||||
@ -39,6 +40,9 @@ class Flex(AutotoolsPackage):
|
|||||||
version('2.6.0', '760be2ee9433e822b6eb65318311c19d')
|
version('2.6.0', '760be2ee9433e822b6eb65318311c19d')
|
||||||
version('2.5.39', '5865e76ac69c05699f476515592750d7')
|
version('2.5.39', '5865e76ac69c05699f476515592750d7')
|
||||||
|
|
||||||
|
variant('lex', default=True,
|
||||||
|
description="Provide symlinks for lex and libl")
|
||||||
|
|
||||||
depends_on('bison', type='build')
|
depends_on('bison', type='build')
|
||||||
depends_on('gettext@0.19:', type='build')
|
depends_on('gettext@0.19:', type='build')
|
||||||
depends_on('help2man', type='build')
|
depends_on('help2man', type='build')
|
||||||
@ -61,3 +65,16 @@ def url_for_version(self, version):
|
|||||||
url += "/archive/flex-{0}.tar.gz".format(version.dashed)
|
url += "/archive/flex-{0}.tar.gz".format(version.dashed)
|
||||||
|
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
@run_after('install')
|
||||||
|
def symlink_lex(self):
|
||||||
|
if self.spec.satisfies('+lex'):
|
||||||
|
dso = dso_suffix
|
||||||
|
for dir, flex, lex in \
|
||||||
|
((self.prefix.bin, 'flex', 'lex'),
|
||||||
|
(self.prefix.lib, 'libfl.a', 'libl.a'),
|
||||||
|
(self.prefix.lib, 'libfl.' + dso, 'libl.' + dso)):
|
||||||
|
with working_dir(dir):
|
||||||
|
if (os.path.isfile(flex) and not
|
||||||
|
os.path.lexists(lex)):
|
||||||
|
symlink(flex, lex)
|
||||||
|
Loading…
Reference in New Issue
Block a user