@@ -24,16 +24,19 @@ use dist::{sanitize_sh, tmpdir};
2424/// Installs everything.
2525pub fn install ( build : & Build , stage : u32 , host : & str ) {
2626 let prefix_default = PathBuf :: from ( "/usr/local" ) ;
27+ let sysconfdir_default = PathBuf :: from ( "/etc" ) ;
2728 let docdir_default = PathBuf :: from ( "share/doc/rust" ) ;
2829 let bindir_default = PathBuf :: from ( "bin" ) ;
2930 let libdir_default = PathBuf :: from ( "lib" ) ;
3031 let mandir_default = PathBuf :: from ( "share/man" ) ;
3132 let prefix = build. config . prefix . as_ref ( ) . unwrap_or ( & prefix_default) ;
33+ let sysconfdir = build. config . sysconfdir . as_ref ( ) . unwrap_or ( & sysconfdir_default) ;
3234 let docdir = build. config . docdir . as_ref ( ) . unwrap_or ( & docdir_default) ;
3335 let bindir = build. config . bindir . as_ref ( ) . unwrap_or ( & bindir_default) ;
3436 let libdir = build. config . libdir . as_ref ( ) . unwrap_or ( & libdir_default) ;
3537 let mandir = build. config . mandir . as_ref ( ) . unwrap_or ( & mandir_default) ;
3638
39+ let sysconfdir = prefix. join ( sysconfdir) ;
3740 let docdir = prefix. join ( docdir) ;
3841 let bindir = prefix. join ( bindir) ;
3942 let libdir = prefix. join ( libdir) ;
@@ -42,6 +45,7 @@ pub fn install(build: &Build, stage: u32, host: &str) {
4245 let destdir = env:: var_os ( "DESTDIR" ) . map ( PathBuf :: from) ;
4346
4447 let prefix = add_destdir ( & prefix, & destdir) ;
48+ let sysconfdir = add_destdir ( & sysconfdir, & destdir) ;
4549 let docdir = add_destdir ( & docdir, & destdir) ;
4650 let bindir = add_destdir ( & bindir, & destdir) ;
4751 let libdir = add_destdir ( & libdir, & destdir) ;
@@ -51,36 +55,43 @@ pub fn install(build: &Build, stage: u32, host: &str) {
5155 t ! ( fs:: create_dir_all( & empty_dir) ) ;
5256 if build. config . docs {
5357 install_sh ( & build, "docs" , "rust-docs" , & build. rust_package_vers ( ) ,
54- stage, host, & prefix, & docdir, & bindir, & libdir, & mandir, & empty_dir) ;
58+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
59+ & mandir, & empty_dir) ;
5560 }
5661
5762 for target in build. config . target . iter ( ) {
5863 install_sh ( & build, "std" , "rust-std" , & build. rust_package_vers ( ) ,
59- stage, target, & prefix, & docdir, & bindir, & libdir, & mandir, & empty_dir) ;
64+ stage, target, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
65+ & mandir, & empty_dir) ;
6066 }
6167
6268 if build. config . extended {
6369 install_sh ( & build, "cargo" , "cargo" , & build. cargo_package_vers ( ) ,
64- stage, host, & prefix, & docdir, & bindir, & libdir, & mandir, & empty_dir) ;
70+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
71+ & mandir, & empty_dir) ;
6572 install_sh ( & build, "rls" , "rls" , & build. rls_package_vers ( ) ,
66- stage, host, & prefix, & docdir, & bindir, & libdir, & mandir, & empty_dir) ;
73+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
74+ & mandir, & empty_dir) ;
6775 }
6876
6977 install_sh ( & build, "rustc" , "rustc" , & build. rust_package_vers ( ) ,
70- stage, host, & prefix, & docdir, & bindir, & libdir, & mandir, & empty_dir) ;
78+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
79+ & mandir, & empty_dir) ;
7180
7281 t ! ( fs:: remove_dir_all( & empty_dir) ) ;
7382}
7483
7584fn install_sh ( build : & Build , package : & str , name : & str , version : & str , stage : u32 , host : & str ,
76- prefix : & Path , docdir : & Path , bindir : & Path , libdir : & Path , mandir : & Path , empty_dir : & Path ) {
85+ prefix : & Path , sysconfdir : & Path , docdir : & Path , bindir : & Path , libdir : & Path ,
86+ mandir : & Path , empty_dir : & Path ) {
7787 println ! ( "Install {} stage{} ({})" , package, stage, host) ;
7888 let package_name = format ! ( "{}-{}-{}" , name, version, host) ;
7989
8090 let mut cmd = Command :: new ( "sh" ) ;
8191 cmd. current_dir ( empty_dir)
8292 . arg ( sanitize_sh ( & tmpdir ( build) . join ( & package_name) . join ( "install.sh" ) ) )
8393 . arg ( format ! ( "--prefix={}" , sanitize_sh( prefix) ) )
94+ . arg ( format ! ( "--sysconfdir={}" , sanitize_sh( sysconfdir) ) )
8495 . arg ( format ! ( "--docdir={}" , sanitize_sh( docdir) ) )
8596 . arg ( format ! ( "--bindir={}" , sanitize_sh( bindir) ) )
8697 . arg ( format ! ( "--libdir={}" , sanitize_sh( libdir) ) )
0 commit comments