diff options
Diffstat (limited to 'crossdev')
-rwxr-xr-x | crossdev | 31 |
1 files changed, 22 insertions, 9 deletions
@@ -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 |