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