#!@SHELL@
# $Id: ncurses-config.in,v 1.52 2022/07/26 21:36:28 tom Exp $
##############################################################################
# Copyright 2018-2021,2022 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"), #
# to deal in the Software without restriction, including without limitation  #
# the rights to use, copy, modify, merge, publish, distribute, distribute    #
# with modifications, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the  #
# following conditions:                                                      #
#                                                                            #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software.                        #
#                                                                            #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
# DEALINGS IN THE SOFTWARE.                                                  #
#                                                                            #
# Except as contained in this notice, the name(s) of the above copyright     #
# holders shall not be used in advertising or otherwise to promote the sale, #
# use or other dealings in this Software without prior written               #
# authorization.                                                             #
##############################################################################
#
# Author: Thomas E. Dickey, 2006-on

LANG=C;		export LANG
LANGUAGE=C;	export LANGUAGE
LC_ALL=C;	export LC_ALL
LC_CTYPE=C;	export LC_CTYPE

prefix="@prefix@"
exec_prefix="@exec_prefix@"

bindir="@bindir@"
includedir="@includedir@"
libdir="@libdir@"
datarootdir="@datarootdir@"
datadir="@datadir@"
mandir="@mandir@"

THIS="@LIB_NAME@@USE_LIB_SUFFIX@"
TINFO_LIB="@TINFO_ARG_SUFFIX@"
RPATH_LIST="@RPATH_LIST@"

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 [ -n "$RPATH_LIST" ]
then
	save_IFS="$IFS"
	IFS='@PATH_SEPARATOR@'
	filtered=
	for item in $RPATH_LIST
	do
		case "$item" in
		./*|../*|*/..|*/../*)
			;;
		*)
			[ -n "$filtered" ] && filtered="${filtered}@PATH_SEPARATOR@"
			filtered="${filtered}${item}"
			;;
		esac
	done
	IFS="$save_IFS"
	# if the result is empty, there is little we can do to fix it
	RPATH_LIST="$filtered"
fi

# with --disable-overwrite, we installed into a subdirectory, but transformed
# the headers to include like this:
#	<ncurses@LIB_SUFFIX@/curses.h>
if [ x@WITH_OVERWRITE@ = xno ]; then
	case $includedir in
	$prefix/include/ncurses@LIB_SUFFIX@@EXTRA_SUFFIX@)
		includedir=`echo "$includedir" | sed -e 's,/[^/]*$,,'`
		;;
	esac
fi

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 @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
		;;
	-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//'`
		[ -d "$lib_check" ] || continue
		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

[ $# = 0 ] && exec @SHELL@ "$0" --error

while [ $# -gt 0 ]; do
	case "$1" in
	# basic configuration
	--prefix)
		echo "$prefix"
		;;
	--exec-prefix)
		echo "$exec_prefix"
		;;
	# compile/link
	--cflags)
		INCS="@PKG_CFLAGS@"
		if [ "x@WITH_OVERWRITE@" = xno ]; then
			INCS="$INCS -I${includesubdir}"
		fi
		if [ "${includedir}" != /usr/include ]; then
			INCS="$INCS -I${includedir}"
		fi
		sed -e 's,^[ ]*,,' -e 's, [ ]*, ,g' -e 's,[ ]*$,,' <<-ENDECHO
			$INCS
ENDECHO
		;;
	--libs)
		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)
		echo "@NCURSES_MAJOR@.@NCURSES_MINOR@.@NCURSES_PATCH@"
		;;
	--abi-version)
		echo "@cf_cv_abi_version@"
		;;
	--mouse-version)
		echo "@NCURSES_MOUSE_VERSION@"
		;;
	# locations
	--bindir)
		echo "${bindir}"
		;;
	--datadir)
		echo "${datadir}"
		;;
	--includedir)
		INCS=
		if [ "x@WITH_OVERWRITE@" = xno ]; then
			INCS="${includesubdir}"
		elif [ "${includedir}" != /usr/include ]; then
			INCS="${includedir}"
		fi
		echo "$INCS"
		;;
	--libdir)
		echo "${libdir}"
		;;
	--mandir)
		echo "${mandir}"
		;;
	--terminfo)
		echo "@TERMINFO@"
		;;
	--terminfo-dirs)
		echo "@TERMINFO_DIRS@"
		;;
	--termpath)
		echo "@TERMPATH@"
		;;
	# general info
	--help)
		cat <<ENDHELP
Usage: `basename "$0"` [options]

Options:
  --prefix           echos the package-prefix of ${THIS}
  --exec-prefix      echos the executable-prefix of ${THIS}

  --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}

  --bindir           echos the directory containing ${THIS} programs
  --datadir          echos the directory containing ${THIS} data
  --includedir       echos the directory containing ${THIS} header files
  --libdir           echos the directory containing ${THIS} libraries
  --mandir           echos the directory containing ${THIS} manpages
  --terminfo         echos the \$TERMINFO terminfo database path
  --terminfo-dirs    echos the \$TERMINFO_DIRS directory list
  --termpath         echos the \$TERMPATH termcap list

  --help             prints this message
ENDHELP
		;;
	--error|*)
		@SHELL@ "$0" --help 1>&2
		exit 1
		;;
	esac
	shift
done
# vi:ts=4 sw=4
# vile:shmode
