summaryrefslogtreecommitdiff
path: root/misc/ncurses-config.in
diff options
context:
space:
mode:
Diffstat (limited to 'misc/ncurses-config.in')
-rw-r--r--misc/ncurses-config.in50
1 files changed, 43 insertions, 7 deletions
diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in
index 7f8ba69..7b02ac2 100644
--- a/misc/ncurses-config.in
+++ b/misc/ncurses-config.in
@@ -1,7 +1,7 @@
#!@SHELL@
-# $Id: ncurses-config.in,v 1.43 2020/02/02 23:34:34 tom Exp $
+# $Id: ncurses-config.in,v 1.50 2021/08/07 21:36:14 tom Exp $
##############################################################################
-# Copyright 2018-2019,2020 Thomas E. Dickey #
+# Copyright 2018-2020,2021 Thomas E. Dickey #
# Copyright 2006-2015,2017 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
@@ -98,10 +98,10 @@ fi
# are standard library directories (i.e., the linker is supposed to search
# those directories).
#
-# There is no portable way to find the list of standard library directories.
+# There is no portable way to find the list of standard library directories.
# Require a POSIX shell anyway, to keep this simple.
lib_flags=
-for opt in -L$libdir @LDFLAGS@ @EXTRA_LDFLAGS@ $LIBS
+for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ $LIBS
do
case $opt in
-specs*) # ignore linker specs-files which were used to build library
@@ -110,11 +110,47 @@ do
-Wl,-z,*) # ignore flags used to manipulate shared image
continue
;;
+ -Wl,--dynamic-linker*) # ignore ELF interpreter
+ continue
+ ;;
-L*)
- [ -d ${opt##-L} ] || continue
- case ${opt##-L} in
+ lib_check=`echo "x$opt" | sed -e 's/^.-L//'`
+ [ -d "$lib_check" ] || continue
+ case "$lib_check" in
@LD_SEARCHPATH@) # skip standard libdir
- continue
+ 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