aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'crossdev')
-rwxr-xr-xcrossdev31
1 files changed, 22 insertions, 9 deletions
diff --git a/crossdev b/crossdev
index 3858051..58cad4f 100755
--- a/crossdev
+++ b/crossdev
@@ -1,7 +1,7 @@
#!/bin/bash
-# Copyright 1999-2007 Gentoo Foundation
+# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/crossdev/files/crossdev,v 1.103 2008/05/16 17:43:28 vapier Exp $
+# $Header: $
cd /
umask 0022 #159111
@@ -36,6 +36,7 @@ Options:
${GOOD}-S, --stable${NORMAL} Use latest stable versions as default
${GOOD}-C, --clean${NORMAL} target Uninstall specified target
${GOOD}-P, --portage${NORMAL} opts Options to pass to emerge (see emerge(1))
+ ${GOOD}--with[out]-headers${NORMAL} Build C library headers before C compiler?
Stage Options:
${GOOD}-s0, --stage0${NORMAL} Build just binutils
${GOOD}-s1, --stage1${NORMAL} Also build a C compiler (no libc/C++)
@@ -47,7 +48,6 @@ Extra Fun (must be run after above stages):
${GOOD}--ex-gcc${NORMAL} Build extra gcc targets (gcj/ada/etc...)
${GOOD}--ex-gdb${NORMAL} Build a cross gdb
${GOOD}--ex-insight${NORMAL} Build a cross insight
-
${BRACKET}Target (-t)${NORMAL} takes a tuple ${BRACKET}ARCH-VENDOR-OS-LIBC${NORMAL}; see 'crossdev -t help'
EOF
[[ -n $* ]] && echo && eerror "Error: $*"
@@ -112,7 +112,7 @@ parse_target() {
case ${CTARGET} in
i?86|x86_64)
CTARGET="${CTARGET}-pc-linux-gnu";;
- s390*)
+ s390*)
CTARGET="${CTARGET}-ibm-linux-gnu";;
alpha*|arm*|cris*|hppa*|ia64*|m68*|mips*|powerpc*|sparc*|sh*)
CTARGET="${CTARGET}-unknown-linux-gnu";;
@@ -148,6 +148,10 @@ parse_target() {
LCAT="dev-embedded"; LPKG="avr-libc";
GUSE=${GUSE_DISABLE};;
+ # due to upstream lameness, build C/C++ at first glance
+ *-cygwin)
+ GUSE_DISABLE=${GUSE_DISABLE/nocxx};;
+
mingw*|*-mingw*)
WITH_DEF_HEADERS="yes";
KCAT="dev-util"; KPKG="w32api";
@@ -197,6 +201,12 @@ parse_target() {
*-uclibc*) LPKG="uclibc";;
*-uclinux) LPKG="uclibc";;
+ # Windows targets
+ *-cygwin)
+ LCAT="dev-libs"; LPKG="cygwin";
+ KPKG="[none]";
+ ;;
+
# Bare metal targets
*-newlib|*-elf)
LPKG="newlib"
@@ -210,6 +220,8 @@ parse_target() {
KPKG="[none]"
;;
esac
+
+ : ${LPKG=[none]}
}
setup_portage_vars() {
@@ -255,8 +267,7 @@ uninstall() {
rm -f /usr/bin/${CTARGET}-${b} /usr/${CTARGET}/bin/${b}
done
rm -f /usr/${CTARGET}/{sys-include,usr}
- rm -f /usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,emerge}
- rm -f /usr/bin/emerge-${CTARGET} /usr/bin/${CTARGET}-pkg-config
+ rm -f /usr/bin/${CTARGET}-{gcc,{c,g}++,cpp,gfortran,gcov}
rmdir /usr/${CTARGET}/{include/asm,include} &> /dev/null
for d in /usr/${CTARGET} /usr/lib/gcc{,-lib}/${CTARGET} ; do
if [[ ! -d ${d} ]] ; then
@@ -330,9 +341,10 @@ GCAT="sys-devel" ; GPKG="gcc" ; GVER="" ; GUSE=""
KCAT="sys-kernel" ; KPKG="linux-headers" ; KVER="" ; KUSE=""
LCAT="sys-libs" ; LPKG="" ; LVER="" ; LUSE=""
DEFAULT_VER="[latest]"
-GUSE_DISABLE="-boundschecking -d -fortran -gtk -gcj -libffi -mudflap -objc -objc++ -objc-gc -openmp"
+GUSE_DISABLE="-boundschecking -d -fortran -gtk -gcj -libffi -mudflap nocxx -objc -objc++ -objc-gc -openmp"
GUSE_DISABLE_STAGE_2=${GUSE_DISABLE/-fortran}
-WITH_HEADERS="COW" WITH_DEF_HEADERS="no"
+GUSE_DISABLE_STAGE_2=${GUSE_DISABLE_STAGE_2/nocxx}
+WITH_HEADERS="COW" WITH_DEF_HEADERS="yes" #227065 gcc-4.3+ is a pita w/out headers
EX_FAST="no"
EX_GCC="no"
EX_GDB="no"
@@ -617,7 +629,7 @@ USE="${KUSE} ${USE}" CROSSCOMPILE_OPTS="headers-only" \
USE="${LUSE} ${USE}" CROSSCOMPILE_OPTS="headers-only" \
doemerge ${LPKG} ${LPKG}-headers
fi
-USE="${GUSE} ${USE} ${GUSE_DISABLE} nocxx" CROSSCOMPILE_OPTS="bootstrap" \
+USE="${GUSE} ${USE} ${GUSE_DISABLE}" CROSSCOMPILE_OPTS="bootstrap" \
doemerge ${GPKG} ${GPKG}-stage1
is_s2 || exit 0
@@ -633,6 +645,7 @@ USE="${LUSE} ${USE}" CROSSCOMPILE_OPTS="" \
is_s4 || exit 0
set_eopts_on_pkg_status ${GPKG} crosscompile_opts_bootstrap
+EOPTS="${EOPTS_UP} --newuse"
USE="${GUSE} ${USE} ${GUSE_DISABLE_STAGE_2}" \
doemerge ${GPKG} ${GPKG}-stage2