X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=misc%2Fncurses-config.in;h=a4b89c5a5428ea3669ccb8deb58c1b77b145e9dc;hp=476d384e3ef34f23ad99f26ca3e823d914eaf367;hb=2ba352d86b57bddd1dd2a6e20892f380c34180b7;hpb=86b16a498d6d545c03dceff7636d269eb7eb1e8f diff --git a/misc/ncurses-config.in b/misc/ncurses-config.in index 476d384e..a4b89c5a 100644 --- a/misc/ncurses-config.in +++ b/misc/ncurses-config.in @@ -1,7 +1,8 @@ #!@SHELL@ -# $Id: ncurses-config.in,v 1.36 2017/12/09 22:45:44 tom Exp $ +# $Id: ncurses-config.in,v 1.44 2020/05/23 17:56:52 tom Exp $ ############################################################################## -# Copyright (c) 2006-2015,2017 Free Software Foundation, Inc. # +# Copyright 2018-2019,2020 Thomas E. Dickey # +# Copyright 2006-2015,2017 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"), # @@ -54,7 +55,7 @@ includesubdir="@includedir@/${THIS}" # Ensure that RPATH_LIST contains only absolute pathnames, if it is nonempty. # We cannot filter it out within the build-process since the variable is used # in some special cases of installation using a relative path. -if test -n "$RPATH_LIST" +if [ -n "$RPATH_LIST" ] then save_IFS="$IFS" IFS='@PATH_SEPARATOR@' @@ -65,7 +66,7 @@ then ./*|../*|*/..|*/../*) ;; *) - test -n "$filtered" && filtered="${filtered}@PATH_SEPARATOR@" + [ -n "$filtered" ] && filtered="${filtered}@PATH_SEPARATOR@" filtered="${filtered}${item}" ;; esac @@ -78,7 +79,7 @@ fi # with --disable-overwrite, we installed into a subdirectory, but transformed # the headers to include like this: # -if test x@WITH_OVERWRITE@ = xno ; then +if [ x@WITH_OVERWRITE@ = xno ]; then case $includedir in $prefix/include/ncurses@LIB_SUFFIX@@EXTRA_SUFFIX@) includedir=`echo "$includedir" | sed -e 's,/[^/]*$,,'` @@ -86,9 +87,56 @@ if test x@WITH_OVERWRITE@ = xno ; then esac fi -test $# = 0 && exec @SHELL@ $0 --error +LIBS="@LIBS@" +if [ "@TINFO_NAME@" = "@LIB_NAME@" ]; then + LIBS="-l${THIS} $LIBS" +else + LIBS="-l${THIS} -l${TINFO_LIB} $LIBS" +fi + +# Ignore -L options which do not correspond to an actual directory, or which +# 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. +# Require a POSIX shell anyway, to keep this simple. +lib_flags= +for opt in -L$libdir @LDFLAGS@ @EXTRA_PKG_LDFLAGS@ $LIBS +do + case $opt in + -specs*) # ignore linker specs-files which were used to build library + continue + ;; + -Wl,-z,*) # ignore flags used to manipulate shared image + continue + ;; + -L*) + [ -d ${opt##-L} ] || continue + case ${opt##-L} in + @LD_SEARCHPATH@) # skip standard libdir + continue + ;; + *) + 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 -while test $# -gt 0; do +[ $# = 0 ] && exec @SHELL@ $0 --error + +while [ $# -gt 0 ]; do case "$1" in # basic configuration --prefix) @@ -100,10 +148,10 @@ while test $# -gt 0; do # compile/link --cflags) INCS="@PKG_CFLAGS@" - if test "x@WITH_OVERWRITE@" = xno ; then + if [ "x@WITH_OVERWRITE@" = xno ]; then INCS="$INCS -I${includesubdir}" fi - if test "${includedir}" != /usr/include ; then + if [ "${includedir}" != /usr/include ]; then INCS="$INCS -I${includedir}" fi sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO @@ -111,21 +159,54 @@ while test $# -gt 0; do ENDECHO ;; --libs) - if test "$libdir" = /usr/lib - then - LIBDIR= - else - LIBDIR=-L$libdir - fi - if test @TINFO_NAME@ = @LIB_NAME@ ; then - sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO - $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} @LIBS@ -ENDECHO - else - sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO - $LIBDIR @EXTRA_LDFLAGS@ -l${THIS} -l${TINFO_LIB} @LIBS@ -ENDECHO - fi + OPTS= + for opt in $lib_flags + do + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + done + printf "%s\n" "$OPTS" + ;; + --libs-only-L) + OPTS= + for opt in $lib_flags + do + case "x$opt" in + x-L*) + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + ;; + esac + done + printf "%s\n" "$OPTS" + ;; + --libs-only-l) + OPTS= + for opt in $lib_flags + do + case "x$opt" in + x-l*) + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + ;; + esac + done + printf "%s\n" "$OPTS" + ;; + --libs-only-other) + OPTS= + for opt in $lib_flags + do + case "x$opt" in + x-[lL]*) + ;; + *) + [ -n "$OPTS" ] && OPTS="$OPTS " + OPTS="${OPTS}${opt}" + ;; + esac + done + printf "%s\n" "$OPTS" ;; # identification --version) @@ -146,9 +227,9 @@ ENDECHO ;; --includedir) INCS= - if test "x@WITH_OVERWRITE@" = xno ; then + if [ "x@WITH_OVERWRITE@" = xno ]; then INCS="${includesubdir}" - elif test "${includedir}" != /usr/include ; then + elif [ "${includedir}" != /usr/include ]; then INCS="${includedir}" fi echo $INCS @@ -180,6 +261,10 @@ Options: --cflags echos the C compiler flags needed to compile with ${THIS} --libs echos the libraries needed to link with ${THIS} + --libs-only-L echos -L linker options (search path) for ${THIS} + --libs-only-l echos -l linker options (libraries) for ${THIS} + --libs-only-other echos linker options other than -L/-l + --version echos the release+patchdate version of ${THIS} --abi-version echos the ABI version of ${THIS} --mouse-version echos the mouse-interface version of ${THIS}