[SCons] Install to lib64 directory on operating systems that use this

Resolves #318.
This commit is contained in:
Ray Speth
2016-06-29 20:52:58 -04:00
parent 908e620325
commit feca44aa2d
4 changed files with 23 additions and 10 deletions

View File

@@ -1144,10 +1144,16 @@ if env['matlab_toolbox'] == 'y':
# *** Set additional configuration variables ***
# **********************************************
# Some distributions (e.g. Fedora/RHEL) use 'lib64' instead of 'lib' on 64-bit systems
if any(name.startswith('/usr/lib64/python') for name in sys.path):
env['libdirname'] = 'lib64'
else:
env['libdirname'] = 'lib'
# Directories where things will be after actually being installed. These
# variables are the ones that are used to populate header files, scripts, etc.
env['ct_installroot'] = env['prefix']
env['ct_libdir'] = pjoin(env['prefix'], 'lib')
env['ct_libdir'] = pjoin(env['prefix'], env['libdirname'])
env['ct_bindir'] = pjoin(env['prefix'], 'bin')
env['ct_incdir'] = pjoin(env['prefix'], 'include', 'cantera')
env['ct_incroot'] = pjoin(env['prefix'], 'include')
@@ -1161,7 +1167,8 @@ else:
env['ct_datadir'] = pjoin(env['prefix'], 'share', 'cantera', 'data')
env['ct_sampledir'] = pjoin(env['prefix'], 'share', 'cantera', 'samples')
env['ct_mandir'] = pjoin(env['prefix'], 'share', 'man', 'man1')
env['ct_matlab_dir'] = pjoin(env['prefix'], 'lib', 'cantera', 'matlab', 'toolbox')
env['ct_matlab_dir'] = pjoin(env['prefix'], env['libdirname'],
'cantera', 'matlab', 'toolbox')
# Always set the stage directory before building an MSI installer
if 'msi' in COMMAND_LINE_TARGETS:
@@ -1198,7 +1205,7 @@ else:
if env['layout'] == 'debian':
base = pjoin(os.getcwd(), 'debian')
env['inst_libdir'] = pjoin(base, 'cantera-dev', 'usr', 'lib')
env['inst_libdir'] = pjoin(base, 'cantera-dev', 'usr', env['libdirname'])
env['inst_incdir'] = pjoin(base, 'cantera-dev', 'usr', 'include', 'cantera')
env['inst_incroot'] = pjoin(base, 'cantera-dev', 'usr' 'include')
@@ -1208,14 +1215,14 @@ if env['layout'] == 'debian':
env['inst_sampledir'] = pjoin(base, 'cantera-common', 'usr', 'share', 'cantera', 'samples')
env['inst_mandir'] = pjoin(base, 'cantera-common', 'usr', 'share', 'man', 'man1')
env['inst_matlab_dir'] = pjoin(base, 'cantera-matlab',
'usr', 'lib', 'cantera', 'matlab', 'toolbox')
env['inst_matlab_dir'] = pjoin(base, 'cantera-matlab', 'usr',
env['libdirname'], 'cantera', 'matlab', 'toolbox')
env['inst_python_bindir'] = pjoin(base, 'cantera-python', 'usr', 'bin')
env['python_prefix'] = pjoin(base, 'cantera-python', 'usr')
env['python3_prefix'] = pjoin(base, 'cantera-python3', 'usr')
else:
env['inst_libdir'] = pjoin(instRoot, 'lib')
env['inst_libdir'] = pjoin(instRoot, env['libdirname'])
env['inst_bindir'] = pjoin(instRoot, 'bin')
env['inst_python_bindir'] = pjoin(instRoot, 'bin')
env['inst_incdir'] = pjoin(instRoot, 'include', 'cantera')
@@ -1228,7 +1235,8 @@ else:
env['inst_docdir'] = pjoin(instRoot, 'doc')
env['inst_mandir'] = pjoin(instRoot, 'man1')
else: # env['layout'] == 'standard'
env['inst_matlab_dir'] = pjoin(instRoot, 'lib', 'cantera', 'matlab', 'toolbox')
env['inst_matlab_dir'] = pjoin(instRoot, env['libdirname'], 'cantera',
'matlab', 'toolbox')
env['inst_datadir'] = pjoin(instRoot, 'share', 'cantera', 'data')
env['inst_sampledir'] = pjoin(instRoot, 'share', 'cantera', 'samples')
env['inst_docdir'] = pjoin(instRoot, 'share', 'cantera', 'doc')

View File

@@ -71,6 +71,7 @@ for line in open('cantera/_cantera.pxd'):
def install_module(prefix, python_version):
major = python_version[0]
minor = python_version.split('.')[1]
ver = '3' if major == '3' else ''
dummy = 'dummy' + major
if prefix == 'USER':
@@ -82,6 +83,10 @@ def install_module(prefix, python_version):
# A specific location for the Cantera python module has been given
if localenv['OS'] == 'Darwin':
extra = localenv.subst(' --prefix=${python%s_prefix}' % ver)
elif localenv['libdirname'] == 'lib64':
# 64-bit RHEL / Fedora
extra = localenv.subst(
' --prefix=${python%s_prefix} --install-lib=${python%s_prefix}/lib64/python%s.%s/site-packages' % (ver, ver, major, minor))
else:
extra = '--user'
localenv.AppendENVPath(

View File

@@ -32,9 +32,9 @@ CANTERA_CORE_INCLUDES=-I$(CANTERA_INSTALL_ROOT)/include
CANTERA_EXTRA_INCLUDES=@mak_extra_includes@
# Required Cantera libraries
CANTERA_CORE_LIBS=@mak_threadflags@ -L$(CANTERA_INSTALL_ROOT)/lib @mak_corelibs@
CANTERA_CORE_LIBS=@mak_threadflags@ -L@ct_libdir@ @mak_corelibs@
CANTERA_CORE_LIBS_DEP = $(CANTERA_INSTALL_ROOT)/lib/libcantera.a
CANTERA_CORE_LIBS_DEP = @ct_libdir@/libcantera.a
CANTERA_EXTRA_LIBDIRS=@mak_extra_libdirs@

View File

@@ -1,6 +1,6 @@
prefix=@pc_prefix@
exec_prefix=${prefix}/bin
libdir=${prefix}/lib
libdir=${prefix}/@libdirname@
includedir=${prefix}/include
Name: Cantera