Skip to content

Commit

Permalink
[SCons] Install to lib64 directory on operating systems that use this
Browse files Browse the repository at this point in the history
Resolves #318.
  • Loading branch information
speth committed Jul 25, 2016
1 parent 908e620 commit feca44a
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 10 deletions.
22 changes: 15 additions & 7 deletions SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand All @@ -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:
Expand Down Expand Up @@ -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')

Expand All @@ -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')
Expand All @@ -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')
Expand Down
5 changes: 5 additions & 0 deletions interfaces/cython/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -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':
Expand All @@ -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(
Expand Down
4 changes: 2 additions & 2 deletions platform/posix/Cantera.mak.in
Original file line number Diff line number Diff line change
Expand Up @@ -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@

Expand Down
2 changes: 1 addition & 1 deletion platform/posix/cantera.pc.in
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
prefix=@pc_prefix@
exec_prefix=${prefix}/bin
libdir=${prefix}/lib
libdir=${prefix}/@libdirname@
includedir=${prefix}/include

Name: Cantera
Expand Down

0 comments on commit feca44a

Please sign in to comment.