diff options
Diffstat (limited to 'meta/recipes-devtools/gnu-config')
4 files changed, 500 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch b/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch new file mode 100644 index 000000000..f820cef1c --- /dev/null +++ b/meta/recipes-devtools/gnu-config/gnu-config/config-guess-uclibc.patch @@ -0,0 +1,174 @@ +Patch courtesy gentoo-portage/sys-devel/gnuconfig/files/automake-1.8.5-config-guess-uclibc.patch. + +updated to 20050516 by Marcin 'Hrw' Juszkiewicz (by hand) +updated to 20080123 by Nitin A Kamble (by hand) + +Index: config/config.guess +=================================================================== +--- config.orig/config.guess ++++ config/config.guess +@@ -139,6 +139,19 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` | + UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown + UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + ++# Detect uclibc systems. ++ ++LIBC="gnu" ++if [ -f /usr/include/bits/uClibc_config.h ] ++then ++ LIBC=uclibc ++ if [ -n `grep "#define __UCLIBC_CONFIG_VERSION__" /usr/include/bits/uClibc_config.h` ] ++ then ++ UCLIBC_SUBVER=`sed -n "/#define __UCLIBC_CONFIG_VERSION__ /s///p" /usr/include/bits/uClibc_config.h` ++ LIBC=$LIBC$UCLIBC_SUBVER ++ fi ++fi ++ + # Note: order is significant - the case branches are not exclusive. + + case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +@@ -840,13 +853,13 @@ EOF + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + echo ${UNAME_MACHINE}-unknown-linux-gnueabi + fi + exit ;; + avr32*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo cris-axis-linux-gnu +@@ -855,16 +868,16 @@ EOF + echo crisv32-axis-linux-gnu + exit ;; + frv:Linux:*:*) +- echo frv-unknown-linux-gnu ++ echo frv-unknown-linux-${LIBC} + exit ;; + ia64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:*) + eval $set_cc_for_build +@@ -887,7 +900,7 @@ EOF + s: ::g + p + }'`" +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + mips64:Linux:*:*) + eval $set_cc_for_build +@@ -910,16 +923,16 @@ EOF + s: ::g + p + }'`" +- test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } ++ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + or32:Linux:*:*) +- echo or32-unknown-linux-gnu ++ echo or32-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) +- echo powerpc-unknown-linux-gnu ++ echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64:Linux:*:*) +- echo powerpc64-unknown-linux-gnu ++ echo powerpc64-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in +@@ -932,40 +945,40 @@ EOF + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null +- if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi +- echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ++ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in +- PA7*) echo hppa1.1-unknown-linux-gnu ;; +- PA8*) echo hppa2.0-unknown-linux-gnu ;; +- *) echo hppa-unknown-linux-gnu ;; ++ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; ++ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; ++ *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) +- echo hppa64-unknown-linux-gnu ++ echo hppa64-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux + exit ;; + sh64*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-gnu + exit ;; + x86_64:Linux:*:*) +- echo x86_64-unknown-linux-gnu ++ echo x86_64-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) +- echo ${UNAME_MACHINE}-unknown-linux-gnu ++ echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + # The BFD linker knows what the default object file format is, so +@@ -980,20 +993,21 @@ EOF + p'` + case "$ld_supported_targets" in + elf32-i386) +- TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu" ++ TENTATIVE="${UNAME_MACHINE}-pc-linux-${LIBC}" + ;; + a.out-i386-linux) +- echo "${UNAME_MACHINE}-pc-linux-gnuaout" ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}aout" + exit ;; + coff-i386) +- echo "${UNAME_MACHINE}-pc-linux-gnucoff" ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}coff" + exit ;; + "") + # Either a pre-BFD a.out linker (linux-gnuoldld) or + # one that does not give us useful --help. +- echo "${UNAME_MACHINE}-pc-linux-gnuoldld" ++ echo "${UNAME_MACHINE}-pc-linux-${LIBC}oldld" + exit ;; + esac ++ if [ $LIBC != "gnu" -o $LIBC != "gnulibc1" ];then echo "$TENTATIVE" && exit; fi + # Determine whether the default compiler is a.out or elf + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c diff --git a/meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in b/meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in new file mode 100755 index 000000000..be8580c8e --- /dev/null +++ b/meta/recipes-devtools/gnu-config/gnu-config/gnu-configize.in @@ -0,0 +1,267 @@ +#! /usr/bin/perl -w +# -*- perl -*- + +eval 'case $# in 0) exec /usr/bin/perl -S "$0";; *) exec /usr/bin/perl -S "$0" "$@";; esac' + if 0; + +# gnu-configize - install the GNU config.guess / config.sub in a directory tree +# Based on autoreconf: +# Copyright (C) 1994, 1999, 2000, 2001, 2002, 2003 +# Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. + +BEGIN +{ + my $datadir = $ENV{'autom4te_perllibdir'} || '@autom4te_perllibdir@'; +# '/home/kergoth/code/build-arm/tmp/staging/share/autoconf'; + unshift @INC, $datadir; + + # Override SHELL. On DJGPP SHELL may not be set to a shell + # that can handle redirection and quote arguments correctly, + # e.g.: COMMAND.COM. For DJGPP always use the shell that configure + # has detected. + $ENV{'SHELL'} = '/bin/sh' if ($^O eq 'dos'); +} + +use Autom4te::ChannelDefs; +use Autom4te::Channels; +use Autom4te::Configure_ac; +use Autom4te::FileUtils; +use Autom4te::General; +use Autom4te::XFile; +# Do not use Cwd::chdir, since it might hang. +use Cwd 'cwd'; +use strict; + +## ----------- ## +## Variables. ## +## ----------- ## + +# $HELP +# ----- +$help = "Usage: $0 [OPTION] ... [CONFIGURE-AC or DIRECTORY] ... + +Install the GNU config.sub and config.guess scripts in the +DIRECTORIES or the directory trees driven by CONFIGURE-AC +(defaulting to `.'). + +Operation modes: + -h, --help print this help, then exit + -V, --version print version number, then exit + -v, --verbose verbosely report processing + -f, --force consider all files obsolete + -s, --symlink install symbolic links instead of copies + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [syntax] + +" . Autom4te::ChannelDefs::usage . " + +The environment variable \`WARNINGS\' is honored. Some subtools might +support other warning types, using \`all' is encouraged. +"; + +# $VERSION +# -------- +$version = "gnu-configize 1.0 + +Copyright (C) 2004 Chris Larson +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +"; + +my $configdir = '@gnu-configdir@'; +#'/home/kergoth/code/build-arm/tmp/staging/i686-linux/share/gnu-config'; +my $autoconf = $ENV{'AUTOCONF'} || 'autoconf'; + +# use symlinks instead. +my $symlink = 0; + +my $configure_ac; + +my $rm = "rm -f"; +my $ln_s = "ln -sf"; +my $cp = "cp -f"; +my $mkdir = "mkdir"; +my $chmod = "chmod"; + +## ---------- ## +## Routines. ## +## ---------- ## + + +# parse_args () +# ------------- +# Process any command line arguments. +sub parse_args () +{ + my $srcdir; + + getopt ('s|symlink' => \$symlink); + + # Even if the user specified a configure.ac, trim to get the + # directory, and look for configure.ac again. Because (i) the code + # is simpler, and (ii) we are still able to diagnose simultaneous + # presence of configure.ac and configure.in. + @ARGV = map { /configure\.(ac|in)$/ ? dirname ($_) : $_ } @ARGV; + push @ARGV, '.' unless @ARGV; +} + + +# &gnu_configize_current_directory +# ----------------------------- +sub gnu_configize_current_directory () +{ + my $configure_ac = require_configure_ac; + + # ---------------------- # + # Is it using Autoconf? # + # ---------------------- # + + my $uses_autoconf; + my $uses_gettext; + my $configure_ac_file = new Autom4te::XFile $configure_ac; + while ($_ = $configure_ac_file->getline) + { + s/#.*//; + s/dnl.*//; + $uses_autoconf = 1 if /AC_INIT/; + } + + if (!$uses_autoconf) + { + verb "$configure_ac: not using Autoconf"; + return; + } + + my $aux_dir; + my @subdir; + my $cmd; + my $dest; + + verb "$configure_ac: tracing"; + my $traces = new Autom4te::XFile + ("$autoconf" + . join (' --trace=', '', + # If you change this list, update the + # `Autoreconf-preselections' section of autom4te.in. + 'AC_CONFIG_AUX_DIR:AC_CONFIG_AUX_DIR:\$1', + 'AC_CONFIG_SUBDIRS:AC_CONFIG_SUBDIRS:\$1', + 'AC_INIT', + ) + . ' |'); + while ($_ = $traces->getline) + { + $aux_dir = $1 if /AC_CONFIG_AUX_DIR:(.*)/; + $uses_autoconf = 1 if /AC_INIT/; + push @subdir, split (' ', $1) if /AC_CONFIG_SUBDIRS:(.*)/; + } + + # The subdirs are *optional*, they may not exist. + foreach (@subdir) + { + if (-d) + { + verb "$configure_ac: subdirectory $_ to gnu-configize"; + gnu_configize ($_); + } + else + { + verb "$configure_ac: subdirectory $_ not present"; + } + } + + $dest = "."; + + if (defined $aux_dir) + { + $dest = $aux_dir; + if (! -d $aux_dir) + { + verb "$configure_ac: creating directory $aux_dir"; + mkdir $aux_dir + or error "cannot create $aux_dir: $!"; + } + } + + if (!$symlink) + { + $cmd = $cp; + } + else + { + $cmd = $ln_s; + } + + xsystem ("$cmd $configdir/config.guess $dest/"); + xsystem ("$chmod u+x $dest/config.guess"); + xsystem ("$cmd $configdir/config.sub $dest/"); + xsystem ("$chmod u+x $dest/config.sub"); +} + + +# &gnu_configize ($DIRECTORY) +# ------------------------ +# Reconf the $DIRECTORY. +sub gnu_configize ($) +{ + my ($directory) = @_; + my $cwd = cwd; + + # The format for this message is not free: taken from Emacs, itself + # using GNU Make's format. + verb "Entering directory `$directory'"; + chdir $directory + or error "cannot chdir to $directory: $!"; + + gnu_configize_current_directory; + + # The format is not free: taken from Emacs, itself using GNU Make's + # format. + verb "Leaving directory `$directory'"; + chdir $cwd + or error "cannot chdir to $cwd: $!"; +} + + +## ------ ## +## Main. ## +## ------ ## + +parse_args; + +# Autoreconf all the given configure.ac. A while loop, not a for, +# since the list can change at runtime because of AC_CONFIG_SUBDIRS. +for my $directory (@ARGV) + { + gnu_configize ($directory); + } + +### Setup "GNU" style for perl-mode and cperl-mode. +## Local Variables: +## perl-indent-level: 2 +## perl-continued-statement-offset: 2 +## perl-continued-brace-offset: 0 +## perl-brace-offset: 0 +## perl-brace-imaginary-offset: 0 +## perl-label-offset: -2 +## cperl-indent-level: 2 +## cperl-brace-offset: 0 +## cperl-continued-brace-offset: 0 +## cperl-label-offset: -2 +## cperl-extra-newline-before-brace: t +## cperl-merge-trailing-else: nil +## cperl-continued-statement-offset: 2 +## End: diff --git a/meta/recipes-devtools/gnu-config/gnu-config/uclibc.patch b/meta/recipes-devtools/gnu-config/gnu-config/uclibc.patch new file mode 100644 index 000000000..20a3b11f2 --- /dev/null +++ b/meta/recipes-devtools/gnu-config/gnu-config/uclibc.patch @@ -0,0 +1,21 @@ +--- config.sub.orig 2004-05-14 19:38:36.000000000 -0500 ++++ config.sub 2004-05-14 19:39:17.000000000 -0500 +@@ -118,7 +118,7 @@ + # Here we must recognize all the valid KERNEL-OS combinations. + maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` + case $maybe_os in +- nto-qnx* | linux-gnu* | kfreebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) ++ nto-qnx* | linux-gnu* | linux-uclibc* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; +@@ -1135,7 +1135,8 @@ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* \ + | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ +- | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \ ++ | -mingw32* | -linux-gnu* | -linux-uclibc* \ ++ | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ diff --git a/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb new file mode 100644 index 000000000..66d027e93 --- /dev/null +++ b/meta/recipes-devtools/gnu-config/gnu-config_20080123.bb @@ -0,0 +1,38 @@ +DESCRIPTION = "gnu-configize" +SECTION = "devel" +LICENSE = "GPL" +DEPENDS = "" +INHIBIT_DEFAULT_DEPS = "1" + +FIXEDSRCDATE = "${@bb.data.getVar('FILE', d, 1).split('_')[-1].split('.')[0]}" +PV = "0.1+cvs${FIXEDSRCDATE}" +PR = "r0" + +SRC_URI = "cvs://anonymous@cvs.sv.gnu.org/cvsroot/config;module=config;method=pserver;date=${FIXEDSRCDATE} \ + file://config-guess-uclibc.patch \ + file://gnu-configize.in" +S = "${WORKDIR}/config" + +do_compile() { + : +} + +do_install () { + install -d ${D}${datadir}/gnu-config \ + ${D}${bindir} + cat ${WORKDIR}/gnu-configize.in | \ + sed -e 's,@gnu-configdir@,${datadir}/gnu-config,g' \ + -e 's,@autom4te_perllibdir@,${datadir}/autoconf,g' > ${D}${bindir}/gnu-configize + # In the native case we want the system perl as perl-native can't have built yet + if [ "${BUILD_ARCH}" != "${TARGET_ARCH}" ]; then + cat ${WORKDIR}/gnu-configize.in | \ + sed -e 's,/usr/bin/perl,${bindir}/perl,g' > ${D}${bindir}/gnu-configize + fi + chmod 755 ${D}${bindir}/gnu-configize + install -m 0644 config.guess config.sub ${D}${datadir}/gnu-config/ +} + +PACKAGES = "${PN}" +FILES_${PN} = "${bindir} ${datadir}/gnu-config" + +BBCLASSEXTEND = "native" |