libncurses: Import https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz changes

Change-Id: I3433d30ca01359fd2e3623ede96b531f0b39cbfa
Signed-off-by: micky387 <mickaelsaibi@free.fr>
diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
index 62d09ff..89a5cd4 100644
--- a/misc/gen-pkgconfig.in
+++ b/misc/gen-pkgconfig.in
@@ -1,7 +1,8 @@
 #!@SHELL@
-# $Id: gen-pkgconfig.in,v 1.29 2015/07/04 20:37:01 tom Exp $
+# $Id: gen-pkgconfig.in,v 1.56 2022/10/08 16:45:20 tom Exp $
 ##############################################################################
-# Copyright (c) 2009-2014,2015 Free Software Foundation, Inc.                #
+# Copyright 2018-2021,2022 Thomas E. Dickey                                  #
+# Copyright 2009-2015,2018 Free Software Foundation, Inc.                    #
 #                                                                            #
 # Permission is hereby granted, free of charge, to any person obtaining a    #
 # copy of this software and associated documentation files (the "Software"), #
@@ -43,6 +44,7 @@
 MENU_NAME=@MENU_NAME@
 FORM_NAME=@FORM_NAME@
 CXX_NAME=@CXX_NAME@
+
 DFT_DEP_SUFFIX=@DFT_DEP_SUFFIX@
 TINFO_ARG_SUFFIX=@TINFO_ARG_SUFFIX@
 CXX_LIB_SUFFIX=@CXX_LIB_SUFFIX@
@@ -53,6 +55,9 @@
 includedir="@includedir@@includesubdir@"
 libdir="@libdir@"
 
+RPATH_LIST=@RPATH_LIST@
+PRIVATE_LIBS="@PRIVATE_LIBS@"
+
 show_prefix='@prefix@'
 show_exec_prefix='@exec_prefix@'
 show_includedir='@includedir@@includesubdir@'
@@ -60,62 +65,141 @@
 
 MAIN_LIBRARY="${LIB_NAME}@USE_ARG_SUFFIX@"
 SUB_LIBRARY="${TINFO_ARG_SUFFIX}"
-PANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@"
-MENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@"
+
+CXX_LIBRARY="${CXX_NAME}@USE_ARG_SUFFIX@"
 FORM_LIBRARY="${FORM_NAME}@USE_ARG_SUFFIX@"
+MENU_LIBRARY="${MENU_NAME}@USE_ARG_SUFFIX@"
+PANEL_LIBRARY="${PANEL_NAME}@USE_ARG_SUFFIX@"
 
 CFLAGS="@PKG_CFLAGS@"
-if test "$includedir" != "/usr/include" ; then
+if [ "$includedir" != "/usr/include" ]; then
 	includetop=`echo "$includedir" | sed -e 's,/include/[^/]*$,/include,'`
-	test "$includetop" = "/usr/include" && includetop="$includedir"
-	if test "x$includetop" != "x$includedir"
+	[ "$includetop" = "/usr/include" ] && includetop="$includedir"
+	CFLAGS="$CFLAGS -I\${includedir}"
+	if [ "x$includetop" != "x$includedir" ]
 	then
 		CFLAGS="$CFLAGS -I${includetop}"
 	fi
-	CFLAGS="$CFLAGS -I\${includedir}"
 fi
 
-LDFLAGS=
-if test "$libdir" != "/usr/lib" ; then
-	LDFLAGS="$LDFLAGS -L\${libdir}"
-fi
-if test "x@EXTRA_LDFLAGS@" != "x" ; then
-	LDFLAGS="$LDFLAGS @EXTRA_LDFLAGS@"
-fi
+lib_flags=
+for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@
+do
+	case $opt in
+	-l*) # LIBS is handled specially below
+		continue
+		;;
+	-specs*) # ignore linker specs-files which were used to build library
+		continue
+		;;
+	-Wl,-z,*) # ignore flags used to manipulate shared image
+		continue
+		;;
+	-Wl,--dynamic-linker*) # ignore ELF interpreter
+		continue
+		;;
+	-Wl,--as-needed|-Wl,--build-id=*|-Wl,-dT,*|-Wl,-T,*)
+		continue
+		;;
+	-L*)
+		lib_check=`echo "x$opt" | sed -e 's/^.-L//'`
+		# on a new/nonstandard install, $libdir may not yet exist at this point
+		if [ "$libdir" != "$lib_check" ]
+		then
+			[ -d "$lib_check" ] || continue
+		fi
+		case "$lib_check" in
+		@LD_SEARCHPATH@) # skip standard libdir
+			if [ "$lib_check" = "$libdir" ]
+			then
+				lib_first=yes
+				IFS_save="$IFS"
+				IFS='|'
+				LIBDIRS="@LD_SEARCHPATH@"
+				for lib_check in $LIBDIRS
+				do
+					if [ -d "$lib_check" ]
+					then
+						if [ "$lib_check" != "$libdir" ]
+						then
+							lib_first=no
+						fi
+						break
+					fi
+				done
+				IFS="$IFS_save"
+				[ $lib_first = yes ] && continue
+				found=no
+				for check in $lib_flags
+				do
+					if [ "x$check" = "x$opt" ]
+					then
+						found=yes
+						break
+					fi
+				done
+				[ $found = yes ] && continue
+				:
+			else
+				continue
+			fi
+			;;
+		*)
+			found=no
+			for check in $lib_flags
+			do
+				if [ "x$check" = "x$opt" ]
+				then
+					found=yes
+					break
+				fi
+			done
+			[ $found = yes ] && continue
+			;;
+		esac
+		;;
+	esac
+	lib_flags="$lib_flags $opt"
+done
 
 # Check if we should specify the tinfo library explicitly so that terminfo
 # functions or curses variables (which also reside in tinfo) can be linked
 # using the -lncurses option.
 NEED_TINFO=no
-if test "x@TINFO_LIBS@" != "x" && \
-   test "x$TINFO_ARG_SUFFIX" != "x$MAIN_LIBRARY"
+if [ "x@TINFO_LIBS@" != "x" ] && \
+   [ "x$TINFO_ARG_SUFFIX" != "x$MAIN_LIBRARY" ]
 then
-	case "x$LDFLAGS" in
-	(*--as-needed*)
-		NEED_TINFO=yes
-		;;
-	esac
-	case "x$LDFLAGS" in
-	(*,-rpath,*)
-		;;
-	(*)
-		NEED_TINFO=yes
-		;;
-	esac
+	NEED_TINFO=yes
 fi
 
+# The "URL" feature came in pkg-config 0.17
+USEURL=""
+CFGVER=`${PKG_CONFIG:-pkg-config} --version 2>/dev/null |head -n 1 | awk -F. '/0.[0-9][0-9]/{print $2;}'`
+# A missing version should simply fail, but some packagers insist on building
+# packages on machines which do not actually have the tools they depend on at
+# runtime.
+[ -z "$CFGVER" ] && CFGVER=30
+[ $CFGVER -ge 17 ] || USEURL="#"
+
 for name in @PC_MODULES_TO_MAKE@
 do
 	name="${name}"
+	case $name in
+	form*)		name="$FORM_LIBRARY" 	;;
+	menu*)		name="$MENU_LIBRARY" 	;;
+	panel*)		name="$PANEL_LIBRARY"	;;
+	ncurses++*)	name="$CXX_LIBRARY"		;;
+	esac
 	LIBS="-l$name"
 
 	desc="ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@"
 	reqs=
 
-	if test $name = $MAIN_LIBRARY ; then
+	if [ $name = $MAIN_LIBRARY ]; then
 		desc="$desc library"
-		test $NEED_TINFO = yes && LIBS="$LIBS -l$TINFO_ARG_SUFFIX"
-	elif test $name = $SUB_LIBRARY ; then
+		[ $NEED_TINFO = yes ] && LIBS="$LIBS -l$TINFO_ARG_SUFFIX"
+		[ -n "@LIBS@" ] && LIBS="$LIBS @LIBS@"
+	elif [ $name = $SUB_LIBRARY ]; then
 		desc="$desc terminal interface library"
 	elif expr $name : ".*${CXX_NAME}.*" >/dev/null ; then
 		reqs="$PANEL_LIBRARY${suffix}, $MENU_LIBRARY${suffix}, $FORM_LIBRARY${suffix}, $MAIN_LIBRARY${suffix}"
@@ -125,17 +209,24 @@
 		desc="$desc add-on library"
 	fi
 
-	if test $name != $SUB_LIBRARY && \
-	   test $SUB_LIBRARY != $MAIN_LIBRARY && \
-	   test $name != $TINFO_NAME && \
-	   test $NEED_TINFO != yes ; then
-		test -n "$reqs" && reqs="$reqs, "
+	if [ $name != $SUB_LIBRARY ] && \
+	   [ $SUB_LIBRARY != $MAIN_LIBRARY ] && \
+	   [ $name != $TINFO_NAME ] && \
+	   [ $NEED_TINFO != yes ] ; then
+		[ -n "$reqs" ] && reqs="$reqs, "
 		reqs="${reqs}${SUB_LIBRARY}${suffix}"
 	fi
 
+	if [ $name = $MAIN_LIBRARY ]
+	then
+		main_libs="$PRIVATE_LIBS"
+	else
+		main_libs=
+	fi
+
 	echo "** creating ${name}${suffix}.pc"
 	cat >${name}${suffix}.pc <<EOF
-# pkg-config file generated by `basename $0`
+# pkg-config file generated by `basename "$0"`
 # vile:makemode
 
 prefix=$show_prefix
@@ -149,12 +240,12 @@
 Name: ${name}${suffix}
 Description: $desc
 Version: \${version}
-URL: http://invisible-island.net/ncurses
+${USEURL}URL: https://invisible-island.net/ncurses
 Requires.private: $reqs
-Libs: $LDFLAGS $LIBS
-Libs.private: @LIBS@
+Libs: $lib_flags $LIBS
+Libs.private: @LIBS@ $main_libs
 Cflags: $CFLAGS
 EOF
 
 done
-# vile:shmode
+# vile:shmode ts=4 sw=4