| 1 | # Copyright 1999-2004 Gentoo Foundation |
1 | # Copyright 1999-2004 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.143 2005/01/26 16:19:12 ka0ttic Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/eutils.eclass,v 1.144 2005/02/03 22:11:33 chriswhite Exp $ |
| 4 | # |
4 | # |
| 5 | # Author: Martin Schlemmer <azarah@gentoo.org> |
5 | # Author: Martin Schlemmer <azarah@gentoo.org> |
| 6 | # |
6 | # |
| 7 | # This eclass is for general purpose functions that most ebuilds |
7 | # This eclass is for general purpose functions that most ebuilds |
| 8 | # have to implement themselves. |
8 | # have to implement themselves. |
| … | |
… | |
| 14 | INHERITED="$INHERITED $ECLASS" |
14 | INHERITED="$INHERITED $ECLASS" |
| 15 | |
15 | |
| 16 | DEPEND="!bootstrap? ( sys-devel/patch )" |
16 | DEPEND="!bootstrap? ( sys-devel/patch )" |
| 17 | |
17 | |
| 18 | DESCRIPTION="Based on the ${ECLASS} eclass" |
18 | DESCRIPTION="Based on the ${ECLASS} eclass" |
|
|
19 | |
|
|
20 | # ecpu_check |
|
|
21 | # Usage: |
|
|
22 | # |
|
|
23 | # ecpu_check array_of_cpu_flags |
|
|
24 | # |
|
|
25 | # array_of_cpu_flags - An array of cpu flags to check against USE flags |
|
|
26 | # |
|
|
27 | # Checks user USE related cpu flags against /proc/cpuinfo. If user enables a |
|
|
28 | # cpu flag that is not supported in their processor flags, it will warn the |
|
|
29 | # user if CROSSCOMPILE is not set to 1 ( because cross compile users are |
|
|
30 | # obviously using different cpu flags than their own cpu ). Examples: |
|
|
31 | # |
|
|
32 | # CPU_FLAGS=(mmx mmx2 sse sse2) |
|
|
33 | # ecpu_check CPU_FLAGS |
|
|
34 | # Chris White <chriswhite@gentoo.org> (03 Feb 2005) |
|
|
35 | |
|
|
36 | ecpu_check() { |
|
|
37 | CPU_FLAGS=$1 |
|
|
38 | USER_CPU=`grep "flags" /proc/cpuinfo` |
|
|
39 | |
|
|
40 | for flags in `seq 1 ${#CPU_FLAGS[@]}` |
|
|
41 | do |
|
|
42 | if has ${CPU_FLAGS[$flags - 1]} $USER_CPU && ! has ${CPU_FLAGS[$flags - 1]} $USE |
|
|
43 | then |
|
|
44 | ewarn "Your system is ${CPU_FLAGS[$flags - 1]} capable but you don't have it enabled!" |
|
|
45 | ewarn "You might be cross compiling (in this case set CROSSCOMPILE to 1 to disable this warning." |
|
|
46 | fi |
|
|
47 | |
|
|
48 | if ! has ${CPU_FLAGS[$flags - 1]} $USER_CPU && has ${CPU_FLAGS[$flags -1]} $USE |
|
|
49 | then |
|
|
50 | ewarn "You have ${CPU_FLAGS[$flags - 1]} support enabled but your processor doesn't" |
|
|
51 | ewarn "Seem to support it! You might be cross compiling or do not have /proc filesystem" |
|
|
52 | ewarn "enabled. If either is the case, set CROSSCOMPILE to 1 to disable this warning." |
|
|
53 | fi |
|
|
54 | done |
|
|
55 | } |
| 19 | |
56 | |
| 20 | # Wait for the supplied number of seconds. If no argument is supplied, defaults |
57 | # Wait for the supplied number of seconds. If no argument is supplied, defaults |
| 21 | # to five seconds. If the EPAUSE_IGNORE env var is set, don't wait. If we're not |
58 | # to five seconds. If the EPAUSE_IGNORE env var is set, don't wait. If we're not |
| 22 | # outputting to a terminal, don't wait. For compatability purposes, the argument |
59 | # outputting to a terminal, don't wait. For compatability purposes, the argument |
| 23 | # must be an integer greater than zero. |
60 | # must be an integer greater than zero. |