10a9064fbSMasahiro Yamada#!/bin/sh
20a9064fbSMasahiro Yamada# Check ncurses compatibility
30a9064fbSMasahiro Yamada
40a9064fbSMasahiro Yamada# What library to link
50a9064fbSMasahiro Yamadaldflags()
60a9064fbSMasahiro Yamada{
70a9064fbSMasahiro Yamada	pkg-config --libs ncursesw 2>/dev/null && exit
80a9064fbSMasahiro Yamada	pkg-config --libs ncurses 2>/dev/null && exit
90a9064fbSMasahiro Yamada	for ext in so a dll.a dylib ; do
100a9064fbSMasahiro Yamada		for lib in ncursesw ncurses curses ; do
110a9064fbSMasahiro Yamada			$cc -print-file-name=lib${lib}.${ext} | grep -q /
120a9064fbSMasahiro Yamada			if [ $? -eq 0 ]; then
130a9064fbSMasahiro Yamada				echo "-l${lib}"
140a9064fbSMasahiro Yamada				exit
150a9064fbSMasahiro Yamada			fi
160a9064fbSMasahiro Yamada		done
170a9064fbSMasahiro Yamada	done
180a9064fbSMasahiro Yamada	exit 1
190a9064fbSMasahiro Yamada}
200a9064fbSMasahiro Yamada
210a9064fbSMasahiro Yamada# Where is ncurses.h?
220a9064fbSMasahiro Yamadaccflags()
230a9064fbSMasahiro Yamada{
24*9b5f0b1dSMasahiro Yamada	if pkg-config --cflags ncursesw 2>/dev/null; then
25*9b5f0b1dSMasahiro Yamada		echo '-DCURSES_LOC="<ncurses.h>" -DNCURSES_WIDECHAR=1'
26*9b5f0b1dSMasahiro Yamada	elif pkg-config --cflags ncurses 2>/dev/null; then
27*9b5f0b1dSMasahiro Yamada		echo '-DCURSES_LOC="<ncurses.h>"'
28*9b5f0b1dSMasahiro Yamada	elif [ -f /usr/include/ncursesw/curses.h ]; then
290a9064fbSMasahiro Yamada		echo '-I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"'
300a9064fbSMasahiro Yamada		echo ' -DNCURSES_WIDECHAR=1'
310a9064fbSMasahiro Yamada	elif [ -f /usr/include/ncurses/ncurses.h ]; then
320a9064fbSMasahiro Yamada		echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
330a9064fbSMasahiro Yamada	elif [ -f /usr/include/ncurses/curses.h ]; then
340a9064fbSMasahiro Yamada		echo '-I/usr/include/ncurses -DCURSES_LOC="<curses.h>"'
350a9064fbSMasahiro Yamada	elif [ -f /usr/include/ncurses.h ]; then
360a9064fbSMasahiro Yamada		echo '-DCURSES_LOC="<ncurses.h>"'
370a9064fbSMasahiro Yamada	else
380a9064fbSMasahiro Yamada		echo '-DCURSES_LOC="<curses.h>"'
390a9064fbSMasahiro Yamada	fi
400a9064fbSMasahiro Yamada}
410a9064fbSMasahiro Yamada
420a9064fbSMasahiro Yamada# Temp file, try to clean up after us
430a9064fbSMasahiro Yamadatmp=.lxdialog.tmp
440a9064fbSMasahiro Yamadatrap "rm -f $tmp" 0 1 2 3 15
450a9064fbSMasahiro Yamada
460a9064fbSMasahiro Yamada# Check if we can link to ncurses
470a9064fbSMasahiro Yamadacheck() {
480a9064fbSMasahiro Yamada        $cc -x c - -o $tmp 2>/dev/null <<'EOF'
490a9064fbSMasahiro Yamada#include CURSES_LOC
500a9064fbSMasahiro Yamadamain() {}
510a9064fbSMasahiro YamadaEOF
520a9064fbSMasahiro Yamada	if [ $? != 0 ]; then
530a9064fbSMasahiro Yamada	    echo " *** Unable to find the ncurses libraries or the"       1>&2
540a9064fbSMasahiro Yamada	    echo " *** required header files."                            1>&2
550a9064fbSMasahiro Yamada	    echo " *** 'make menuconfig' requires the ncurses libraries." 1>&2
560a9064fbSMasahiro Yamada	    echo " *** "                                                  1>&2
570a9064fbSMasahiro Yamada	    echo " *** Install ncurses (ncurses-devel) and try again."    1>&2
580a9064fbSMasahiro Yamada	    echo " *** "                                                  1>&2
590a9064fbSMasahiro Yamada	    exit 1
600a9064fbSMasahiro Yamada	fi
610a9064fbSMasahiro Yamada}
620a9064fbSMasahiro Yamada
630a9064fbSMasahiro Yamadausage() {
640a9064fbSMasahiro Yamada	printf "Usage: $0 [-check compiler options|-ccflags|-ldflags compiler options]\n"
650a9064fbSMasahiro Yamada}
660a9064fbSMasahiro Yamada
670a9064fbSMasahiro Yamadaif [ $# -eq 0 ]; then
680a9064fbSMasahiro Yamada	usage
690a9064fbSMasahiro Yamada	exit 1
700a9064fbSMasahiro Yamadafi
710a9064fbSMasahiro Yamada
720a9064fbSMasahiro Yamadacc=""
730a9064fbSMasahiro Yamadacase "$1" in
740a9064fbSMasahiro Yamada	"-check")
750a9064fbSMasahiro Yamada		shift
760a9064fbSMasahiro Yamada		cc="$@"
770a9064fbSMasahiro Yamada		check
780a9064fbSMasahiro Yamada		;;
790a9064fbSMasahiro Yamada	"-ccflags")
800a9064fbSMasahiro Yamada		ccflags
810a9064fbSMasahiro Yamada		;;
820a9064fbSMasahiro Yamada	"-ldflags")
830a9064fbSMasahiro Yamada		shift
840a9064fbSMasahiro Yamada		cc="$@"
850a9064fbSMasahiro Yamada		ldflags
860a9064fbSMasahiro Yamada		;;
870a9064fbSMasahiro Yamada	"*")
880a9064fbSMasahiro Yamada		usage
890a9064fbSMasahiro Yamada		exit 1
900a9064fbSMasahiro Yamada		;;
910a9064fbSMasahiro Yamadaesac
92