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