@@ -24,60 +24,76 @@ use dist::{sanitize_sh, tmpdir};
24
24
/// Installs everything.
25
25
pub fn install ( build : & Build , stage : u32 , host : & str ) {
26
26
let prefix_default = PathBuf :: from ( "/usr/local" ) ;
27
+ let sysconfdir_default = PathBuf :: from ( "/etc" ) ;
27
28
let docdir_default = PathBuf :: from ( "share/doc/rust" ) ;
28
- let mandir_default = PathBuf :: from ( "share/man " ) ;
29
+ let bindir_default = PathBuf :: from ( "bin " ) ;
29
30
let libdir_default = PathBuf :: from ( "lib" ) ;
31
+ let mandir_default = PathBuf :: from ( "share/man" ) ;
30
32
let prefix = build. config . prefix . as_ref ( ) . unwrap_or ( & prefix_default) ;
33
+ let sysconfdir = build. config . sysconfdir . as_ref ( ) . unwrap_or ( & sysconfdir_default) ;
31
34
let docdir = build. config . docdir . as_ref ( ) . unwrap_or ( & docdir_default) ;
35
+ let bindir = build. config . bindir . as_ref ( ) . unwrap_or ( & bindir_default) ;
32
36
let libdir = build. config . libdir . as_ref ( ) . unwrap_or ( & libdir_default) ;
33
37
let mandir = build. config . mandir . as_ref ( ) . unwrap_or ( & mandir_default) ;
34
38
39
+ let sysconfdir = prefix. join ( sysconfdir) ;
35
40
let docdir = prefix. join ( docdir) ;
41
+ let bindir = prefix. join ( bindir) ;
36
42
let libdir = prefix. join ( libdir) ;
37
43
let mandir = prefix. join ( mandir) ;
38
44
39
45
let destdir = env:: var_os ( "DESTDIR" ) . map ( PathBuf :: from) ;
40
46
41
47
let prefix = add_destdir ( & prefix, & destdir) ;
48
+ let sysconfdir = add_destdir ( & sysconfdir, & destdir) ;
42
49
let docdir = add_destdir ( & docdir, & destdir) ;
50
+ let bindir = add_destdir ( & bindir, & destdir) ;
43
51
let libdir = add_destdir ( & libdir, & destdir) ;
44
52
let mandir = add_destdir ( & mandir, & destdir) ;
45
53
46
54
let empty_dir = build. out . join ( "tmp/empty_dir" ) ;
47
55
t ! ( fs:: create_dir_all( & empty_dir) ) ;
48
56
if build. config . docs {
49
57
install_sh ( & build, "docs" , "rust-docs" , & build. rust_package_vers ( ) ,
50
- stage, host, & prefix, & docdir, & libdir, & mandir, & empty_dir) ;
58
+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
59
+ & mandir, & empty_dir) ;
51
60
}
52
61
53
62
for target in build. config . target . iter ( ) {
54
63
install_sh ( & build, "std" , "rust-std" , & build. rust_package_vers ( ) ,
55
- stage, target, & prefix, & docdir, & libdir, & mandir, & empty_dir) ;
64
+ stage, target, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
65
+ & mandir, & empty_dir) ;
56
66
}
57
67
58
68
if build. config . extended {
59
69
install_sh ( & build, "cargo" , "cargo" , & build. cargo_package_vers ( ) ,
60
- stage, host, & prefix, & docdir, & libdir, & mandir, & empty_dir) ;
70
+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
71
+ & mandir, & empty_dir) ;
61
72
install_sh ( & build, "rls" , "rls" , & build. rls_package_vers ( ) ,
62
- stage, host, & prefix, & docdir, & libdir, & mandir, & empty_dir) ;
73
+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
74
+ & mandir, & empty_dir) ;
63
75
}
64
76
65
77
install_sh ( & build, "rustc" , "rustc" , & build. rust_package_vers ( ) ,
66
- stage, host, & prefix, & docdir, & libdir, & mandir, & empty_dir) ;
78
+ stage, host, & prefix, & sysconfdir, & docdir, & bindir, & libdir,
79
+ & mandir, & empty_dir) ;
67
80
68
81
t ! ( fs:: remove_dir_all( & empty_dir) ) ;
69
82
}
70
83
71
84
fn install_sh ( build : & Build , package : & str , name : & str , version : & str , stage : u32 , host : & str ,
72
- prefix : & Path , docdir : & 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 ) {
73
87
println ! ( "Install {} stage{} ({})" , package, stage, host) ;
74
88
let package_name = format ! ( "{}-{}-{}" , name, version, host) ;
75
89
76
90
let mut cmd = Command :: new ( "sh" ) ;
77
91
cmd. current_dir ( empty_dir)
78
92
. arg ( sanitize_sh ( & tmpdir ( build) . join ( & package_name) . join ( "install.sh" ) ) )
79
93
. arg ( format ! ( "--prefix={}" , sanitize_sh( prefix) ) )
94
+ . arg ( format ! ( "--sysconfdir={}" , sanitize_sh( sysconfdir) ) )
80
95
. arg ( format ! ( "--docdir={}" , sanitize_sh( docdir) ) )
96
+ . arg ( format ! ( "--bindir={}" , sanitize_sh( bindir) ) )
81
97
. arg ( format ! ( "--libdir={}" , sanitize_sh( libdir) ) )
82
98
. arg ( format ! ( "--mandir={}" , sanitize_sh( mandir) ) )
83
99
. arg ( "--disable-ldconfig" ) ;
0 commit comments