kconfig/lxdialog/check-lxdialog.sh
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jul 17 22:43:07 2011 +0200 (2011-07-17)
changeset 2893 a8a65758664f
parent 2125 4009fc9c47d5
permissions -rw-r--r--
cc/gcc: do not use the core pass-2 to build the baremetal compiler

In case we build a baremetal compiler, use the standard passes:
- core_cc is used to build the C library;
- as such, it is meant to run on build, not host;
- the final compiler is meant to run on host;

As the current final compiler step can not build a baremetal compiler,
call the core backend from the final step.

NB: Currently, newlib is built during the start_files pass, so we have
to have a core compiler by then... Once we can build the baremetal
compiler from the final cc step, then we can move the newlib build to
the proper step, and then get rid of the core pass-1 static compiler...

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