diff --git a/SConstruct b/SConstruct index cab7d8ecd4..5353eb307e 100644 --- a/SConstruct +++ b/SConstruct @@ -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') diff --git a/interfaces/cython/SConscript b/interfaces/cython/SConscript index ea2735e0cf..4fadc93a68 100644 --- a/interfaces/cython/SConscript +++ b/interfaces/cython/SConscript @@ -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( diff --git a/platform/posix/Cantera.mak.in b/platform/posix/Cantera.mak.in index f404dbf6c6..8da8586d60 100644 --- a/platform/posix/Cantera.mak.in +++ b/platform/posix/Cantera.mak.in @@ -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@ diff --git a/platform/posix/cantera.pc.in b/platform/posix/cantera.pc.in index a696b50876..dcc87412c0 100644 --- a/platform/posix/cantera.pc.in +++ b/platform/posix/cantera.pc.in @@ -1,6 +1,6 @@ prefix=@pc_prefix@ exec_prefix=${prefix}/bin -libdir=${prefix}/lib +libdir=${prefix}/@libdirname@ includedir=${prefix}/include Name: Cantera