tcl package: Install sources (#8153)

The tcl package references the original sources upon install, and the tk build
requires the tcl sources. This updates the tcl package to install its sources following
the example of #4102, and also updates the tclConfig.sh file to properly reference
the installed sources (rather than the staging directory created by Spack).
This commit is contained in:
Elizabeth Fischer 2018-06-08 14:10:40 -04:00 committed by scheibelp
parent cd860d7554
commit 4a53942ee1

View File

@ -61,9 +61,30 @@ def install(self, spec, prefix):
with working_dir(self.build_directory):
make('install')
# http://wiki.tcl.tk/17463
if self.spec.satisfies('@8.6:'):
make('install-headers')
# Some applications like Expect require private Tcl headers.
make('install-private-headers')
# Copy source to install tree
# A user-provided install option might re-do this
# https://github.com/spack/spack/pull/4102/files
installed_src = join_path(
self.spec.prefix, 'share', self.name, 'src')
stage_src = os.path.realpath(self.stage.source_path)
install_tree(stage_src, installed_src)
# Replace stage dir -> installed src dir in tclConfig
filter_file(
stage_src, installed_src,
join_path(self.spec.prefix, 'lib', 'tclConfig.sh'))
# Don't install binaries in src/ tree
with working_dir(join_path(installed_src, self.configure_directory)):
make('clean')
@run_after('install')
def symlink_tclsh(self):
with working_dir(self.prefix.bin):