auto merge of #11045 : jhasse/rust/patch-libdir, r=alexcrichton

See https://github.com/mozilla/rust/issues/5223#issuecomment-30455086
This commit is contained in:
bors 2014-01-07 12:26:32 -08:00
commit 4329fc6730
7 changed files with 36 additions and 36 deletions

View File

@ -416,6 +416,7 @@ export CFG_ENABLE_MINGW_CROSS
export CFG_PREFIX export CFG_PREFIX
export CFG_LIBDIR export CFG_LIBDIR
export CFG_RUSTLIBDIR export CFG_RUSTLIBDIR
export LIBDIR_RELATIVE
###################################################################### ######################################################################
# Subprograms # Subprograms
@ -433,12 +434,12 @@ define SREQ
# Destinations of artifacts for the host compiler # Destinations of artifacts for the host compiler
HROOT$(1)_H_$(3) = $(3)/stage$(1) HROOT$(1)_H_$(3) = $(3)/stage$(1)
HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin HBIN$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/bin
HLIB$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(CFG_LIBDIR) HLIB$(1)_H_$(3) = $$(HROOT$(1)_H_$(3))/$$(LIBDIR_RELATIVE)
# Destinations of artifacts for target architectures # Destinations of artifacts for target architectures
TROOT$(1)_T_$(2)_H_$(3) = $$(HLIB$(1)_H_$(3))/$$(CFG_RUSTLIBDIR)/$(2) TROOT$(1)_T_$(2)_H_$(3) = $$(HLIB$(1)_H_$(3))/$$(CFG_RUSTLIBDIR)/$(2)
TBIN$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/bin TBIN$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/bin
TLIB$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/$$(CFG_LIBDIR) TLIB$(1)_T_$(2)_H_$(3) = $$(TROOT$(1)_T_$(2)_H_$(3))/lib
# The name of the standard and extra libraries used by rustc # The name of the standard and extra libraries used by rustc
HSTDLIB_DEFAULT$(1)_H_$(3) = \ HSTDLIB_DEFAULT$(1)_H_$(3) = \

42
configure vendored
View File

@ -397,7 +397,17 @@ valopt sysconfdir "/etc" "install system configuration files"
valopt datadir "${CFG_PREFIX}/share" "install data" valopt datadir "${CFG_PREFIX}/share" "install data"
valopt infodir "${CFG_PREFIX}/share/info" "install additional info" valopt infodir "${CFG_PREFIX}/share/info" "install additional info"
valopt mandir "${CFG_PREFIX}/share/man" "install man pages in PATH" valopt mandir "${CFG_PREFIX}/share/man" "install man pages in PATH"
valopt libdir "${CFG_PREFIX}/lib" "install libraries"
# On windows we just store the libraries in the bin directory because
# there's no rpath
# FIXME: Thise needs to parameterized over target triples. Do it in platform.mk
LIBDIR_RELATIVE=lib
if [ "$CFG_OSTYPE" = "pc-mingw32" ]
then
LIBDIR_RELATIVE=bin
fi
valopt libdir "${CFG_PREFIX}/${LIBDIR_RELATIVE}" "install libraries"
valopt rustlibdir "rustlib" "subdirectory name for rustc's libraries" valopt rustlibdir "rustlib" "subdirectory name for rustc's libraries"
# Validate Options # Validate Options
@ -560,10 +570,10 @@ then
step_msg "on OS X 10.9, forcing use of clang" step_msg "on OS X 10.9, forcing use of clang"
CFG_ENABLE_CLANG=1 CFG_ENABLE_CLANG=1
putvar CFG_ENABLE_CLANG putvar CFG_ENABLE_CLANG
else else
# on OS X, with xcode 5 and newer, certain developers may have # on OS X, with xcode 5 and newer, certain developers may have
# cc, gcc and g++ point to a mixture of clang and gcc # cc, gcc and g++ point to a mixture of clang and gcc
# if so, this will create very strange build errors # if so, this will create very strange build errors
# this last stanza is to detect some such problems and save the future rust # this last stanza is to detect some such problems and save the future rust
# contributor some time solving that issue. # contributor some time solving that issue.
# this detection could be generalized to other OSes aside from OS X # this detection could be generalized to other OSes aside from OS X
@ -576,8 +586,8 @@ then
# note that for xcode 5, g++ points to clang, not clang++ # note that for xcode 5, g++ points to clang, not clang++
if !((chk_cc gcc clang && chk_cc g++ clang) || if !((chk_cc gcc clang && chk_cc g++ clang) ||
(chk_cc gcc gcc &&( chk_cc g++ g++ || chk g++ gcc))) then (chk_cc gcc gcc &&( chk_cc g++ g++ || chk g++ gcc))) then
err "the gcc and g++ in your path point to different compilers. err "the gcc and g++ in your path point to different compilers.
Check which versions are in your path with cc --version and g++ --version. Check which versions are in your path with cc --version and g++ --version.
To resolve this problem, either fix your PATH or run configure with --enable-clang" To resolve this problem, either fix your PATH or run configure with --enable-clang"
fi fi
@ -751,15 +761,6 @@ do
done done
done done
# On windows we just store the libraries in the bin directory because
# there's no rpath
# FIXME: Thise needs to parameterized over target triples. Do it in platform.mk
CFG_LIBDIR=lib
if [ "$CFG_OSTYPE" = "pc-mingw32" ]
then
CFG_LIBDIR=bin
fi
for h in $CFG_HOST for h in $CFG_HOST
do do
for t in $CFG_TARGET for t in $CFG_TARGET
@ -770,21 +771,21 @@ do
make_dir $h/stage$i/bin make_dir $h/stage$i/bin
# host lib dir # host lib dir
make_dir $h/stage$i/$CFG_LIBDIR make_dir $h/stage$i/$LIBDIR_RELATIVE
# host test dir # host test dir
make_dir $h/stage$i/test make_dir $h/stage$i/test
# target bin dir # target bin dir
make_dir $h/stage$i/$CFG_LIBDIR/$CFG_RUSTLIBDIR/$t/bin make_dir $h/stage$i/$LIBDIR_RELATIVE/$CFG_RUSTLIBDIR/$t/bin
# target lib dir # target lib dir
make_dir $h/stage$i/$CFG_LIBDIR/$CFG_RUSTLIBDIR/$t/$CFG_LIBDIR make_dir $h/stage$i/$LIBDIR_RELATIVE/$CFG_RUSTLIBDIR/$t/lib
done done
# Fix stage0: # Fix stage0:
make_dir $h/stage0/$CFG_LIBDIR/rustc/$t/bin make_dir $h/stage0/$LIBDIR_RELATIVE/rustc/$t/bin
make_dir $h/stage0/$CFG_LIBDIR/rustc/$t/$CFG_LIBDIR make_dir $h/stage0/$LIBDIR_RELATIVE/rustc/$t/$LIBDIR_RELATIVE
done done
@ -1038,6 +1039,7 @@ putvar CFG_TARGET
putvar CFG_C_COMPILER putvar CFG_C_COMPILER
putvar CFG_LIBDIR putvar CFG_LIBDIR
putvar CFG_RUSTLIBDIR putvar CFG_RUSTLIBDIR
putvar LIBDIR_RELATIVE
putvar CFG_DISABLE_MANAGE_SUBMODULES putvar CFG_DISABLE_MANAGE_SUBMODULES
putvar CFG_ANDROID_CROSS_PATH putvar CFG_ANDROID_CROSS_PATH
putvar CFG_MINGW32_CROSS_PATH putvar CFG_MINGW32_CROSS_PATH

View File

@ -149,7 +149,7 @@ $$(HLIB$(2)_H_$(4))/$(CFG_LIBNATIVE_$(4)): \
$$(HBIN$(2)_H_$(4))/: $$(HBIN$(2)_H_$(4))/:
mkdir -p $$@ mkdir -p $$@
ifneq ($(CFG_LIBDIR),bin) ifneq ($(LIBDIR_RELATIVE),bin)
$$(HLIB$(2)_H_$(4))/: $$(HLIB$(2)_H_$(4))/:
mkdir -p $$@ mkdir -p $$@
endif endif

View File

@ -63,7 +63,7 @@ ISTAGE = 2
PREFIX_ROOT = $(CFG_PREFIX) PREFIX_ROOT = $(CFG_PREFIX)
PREFIX_BIN = $(PREFIX_ROOT)/bin PREFIX_BIN = $(PREFIX_ROOT)/bin
PREFIX_LIB = $(PREFIX_ROOT)/$(CFG_LIBDIR) PREFIX_LIB = $(CFG_LIBDIR)
define INSTALL_PREPARE_N define INSTALL_PREPARE_N
# $(1) is the target triple # $(1) is the target triple
@ -76,7 +76,7 @@ TL$(1)$(2) = $$(TLIB$$(ISTAGE)_T_$(1)_H_$(2))
# PT{R,B,L} == Prefix Target {Root, Bin, Lib} # PT{R,B,L} == Prefix Target {Root, Bin, Lib}
PTR$(1)$(2) = $$(PREFIX_LIB)/$(CFG_RUSTLIBDIR)/$(1) PTR$(1)$(2) = $$(PREFIX_LIB)/$(CFG_RUSTLIBDIR)/$(1)
PTB$(1)$(2) = $$(PTR$(1)$(2))/bin PTB$(1)$(2) = $$(PTR$(1)$(2))/bin
PTL$(1)$(2) = $$(PTR$(1)$(2))/$(CFG_LIBDIR) PTL$(1)$(2) = $$(PTR$(1)$(2))/lib
endef endef

View File

@ -193,10 +193,8 @@ endif
$$(TBIN$(1)_T_$(2)_H_$(3))/: $$(TBIN$(1)_T_$(2)_H_$(3))/:
mkdir -p $$@ mkdir -p $$@
ifneq ($(CFG_LIBDIR),bin)
$$(TLIB$(1)_T_$(2)_H_$(3))/: $$(TLIB$(1)_T_$(2)_H_$(3))/:
mkdir -p $$@ mkdir -p $$@
endif
endef endef

View File

@ -101,14 +101,14 @@ endif
ifdef CFG_WINDOWSY_$(1) ifdef CFG_WINDOWSY_$(1)
CFG_TESTLIB_$(1)=$$(CFG_BUILD_DIR)$$(2)/$$(strip \ CFG_TESTLIB_$(1)=$$(CFG_BUILD_DIR)$$(2)/$$(strip \
$$(if $$(findstring stage0,$$(1)), \ $$(if $$(findstring stage0,$$(1)), \
stage0/$$(CFG_LIBDIR), \ stage0/$$(LIBDIR_RELATIVE), \
$$(if $$(findstring stage1,$$(1)), \ $$(if $$(findstring stage1,$$(1)), \
stage1/$$(CFG_LIBDIR), \ stage1/$$(LIBDIR_RELATIVE), \
$$(if $$(findstring stage2,$$(1)), \ $$(if $$(findstring stage2,$$(1)), \
stage2/$$(CFG_LIBDIR), \ stage2/$$(LIBDIR_RELATIVE), \
$$(if $$(findstring stage3,$$(1)), \ $$(if $$(findstring stage3,$$(1)), \
stage3/$$(CFG_LIBDIR), \ stage3/$$(LIBDIR_RELATIVE), \
)))))/$$(CFG_RUSTLIBDIR)/$$(CFG_BUILD)/$$(CFG_LIBDIR) )))))/$$(CFG_RUSTLIBDIR)/$$(CFG_BUILD)/lib
CFG_RUN_TEST_$(1)=$$(call CFG_RUN_$(1),$$(call CFG_TESTLIB_$(1),$$(1),$$(3)),$$(1)) CFG_RUN_TEST_$(1)=$$(call CFG_RUN_$(1),$$(call CFG_TESTLIB_$(1),$$(1),$$(3)),$$(1))
endif endif

View File

@ -154,12 +154,11 @@ pub fn search(filesearch: @FileSearch, pick: pick) {
} }
pub fn relative_target_lib_path(target_triple: &str) -> Path { pub fn relative_target_lib_path(target_triple: &str) -> Path {
let dir = libdir(); let mut p = Path::new(libdir());
let mut p = Path::new(dir.as_slice());
assert!(p.is_relative()); assert!(p.is_relative());
p.push(rustlibdir()); p.push(rustlibdir());
p.push(target_triple); p.push(target_triple);
p.push(dir); p.push("lib");
p p
} }
@ -245,7 +244,7 @@ pub fn rust_path() -> ~[Path] {
// The name of the directory rustc expects libraries to be located. // The name of the directory rustc expects libraries to be located.
// On Unix should be "lib", on windows "bin" // On Unix should be "lib", on windows "bin"
pub fn libdir() -> ~str { pub fn libdir() -> ~str {
(env!("CFG_LIBDIR")).to_owned() (env!("LIBDIR_RELATIVE")).to_owned()
} }
// The name of rustc's own place to organize libraries. // The name of rustc's own place to organize libraries.