kconfig/lxdialog/check-lxdialog.sh
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon Dec 30 19:08:37 2013 +0100 (2013-12-30)
changeset 3257 7b7d953f9cfb
parent 2125 4009fc9c47d5
permissions -rw-r--r--
binutils/binutils: 2.23.2 is a 2_23_or_later (ie. has gold)

Thus spake Niels:
This commit adds support for binutils 2.23.2

http://crosstool-ng.org/hg/crosstool-ng/rev/bc4b36e3df0c

However, in 'config/binutils/binutils.in <http://binutils.in>' the
Kconfig option to select this version of binutils does not automatically
select the symbol 'BINUTILS_2_23_or_later'. This makes gold unavailable
for the latest version of binutils. I'm not sure whether this is on
purpose or not, my impression is that you forgot to add the line "select
BINUTILS_2_23_or_later".

The problem still persists in the latest version in the repository
(032ebcc89c96).

Reported-by: Niels Penneman <niels@penneman.org>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
yann@1
     1
#!/bin/sh
yann@1
     2
# Check ncurses compatibility
yann@1
     3
yann@1
     4
# What library to link
yann@1
     5
ldflags()
yann@1
     6
{
yann@1087
     7
	for ext in so a dylib ; do
yann@1087
     8
		for lib in ncursesw ncurses curses ; do
yann@2125
     9
			$cc -print-file-name=lib${lib}.${ext} | grep -q /
yann@2125
    10
			if [ $? -eq 0 ]; then
yann@2125
    11
				echo "-l${lib}"
yann@1087
    12
				exit
yann@1087
    13
			fi
yann@1087
    14
		done
yann@1087
    15
	done
yann@1
    16
	exit 1
yann@1
    17
}
yann@1
    18
yann@1
    19
# Where is ncurses.h?
yann@1
    20
ccflags()
yann@1
    21
{
yann@2125
    22
	if [ -f /usr/include/ncurses/ncurses.h ]; then
yann@2125
    23
		echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
yann@2125
    24
	elif [ -f /usr/include/ncurses/curses.h ]; then
yann@2125
    25
		echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
yann@2448
    26
	elif [ -f /usr/include/ncursesw/curses.h ]; then
yann@2448
    27
		echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncursesw/curses.h>"'
yann@2125
    28
	elif [ -f /usr/include/ncurses.h ]; then
yann@2125
    29
		echo '-DCURSES_LOC="<ncurses.h>"'
yann@1
    30
	else
yann@2125
    31
		echo '-DCURSES_LOC="<curses.h>"'
yann@1
    32
	fi
yann@1
    33
}
yann@1
    34
yann@1
    35
# Temp file, try to clean up after us
yann@1
    36
tmp=.lxdialog.tmp
yann@1
    37
trap "rm -f $tmp" 0 1 2 3 15
yann@1
    38
yann@1
    39
# Check if we can link to ncurses
yann@1
    40
check() {
yann@2125
    41
        $cc -xc - -o $tmp 2>/dev/null <<'EOF'
yann@1087
    42
#include CURSES_LOC
yann@1087
    43
main() {}
yann@1087
    44
EOF
yann@1087
    45
	if [ $? != 0 ]; then
yann@1087
    46
	    echo " *** Unable to find the ncurses libraries or the"       1>&2
yann@1087
    47
	    echo " *** required header files."                            1>&2
yann@1087
    48
	    echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2
yann@1087
    49
	    echo " *** "                                                  1>&2
yann@1087
    50
	    echo " *** Install ncurses (ncurses-devel) and try again."    1>&2
yann@1087
    51
	    echo " *** "                                                  1>&2
yann@1087
    52
	    exit 1
yann@1
    53
	fi
yann@1
    54
}
yann@1
    55
yann@1
    56
usage() {
yann@1229
    57
	printf "Usage: $0 [-check compiler options|-ccflags|-ldflags compiler options]\n"
yann@1
    58
}
yann@1
    59
yann@706
    60
if [ $# -eq 0 ]; then
yann@1
    61
	usage
yann@1
    62
	exit 1
yann@1
    63
fi
yann@1
    64
yann@1
    65
cc=""
yann@1
    66
case "$1" in
yann@1
    67
	"-check")
yann@1
    68
		shift
yann@1
    69
		cc="$@"
yann@1
    70
		check
yann@1
    71
		;;
yann@1
    72
	"-ccflags")
yann@1
    73
		ccflags
yann@1
    74
		;;
yann@1
    75
	"-ldflags")
yann@1
    76
		shift
yann@1
    77
		cc="$@"
yann@1
    78
		ldflags
yann@1
    79
		;;
yann@1
    80
	"*")
yann@1
    81
		usage
yann@1
    82
		exit 1
yann@1
    83
		;;
yann@1
    84
esac