#!/bin/sh
# $Id: cdk-config.in,v 1.14 2025/01/16 21:29:50 tom Exp $
##############################################################################
# Copyright (c) 2007-2024,2025 Thomas E. Dickey                              #
#                                                                            #
# 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.                                                             #
##############################################################################

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

prefix="/usr/pkg"
exec_prefix="${prefix}"
datarootdir="${prefix}/share"

same_prefix=yes
same_exec_prefix=yes

THIS="cdk"

[ $# = 0 ] && exec /bin/sh "$0" --error

while [ $# -gt 0 ]; do

	# (re)evaluate symbols that may depend upon $prefix
	if [ "x$same_prefix" != "xyes" ]
	then
		eval exec_prefix='${prefix}'
		eval datarootdir='${prefix}/share'
	elif [ "x$same_exec_prefix" != "xyes" ]
	then
		eval datarootdir='${prefix}/share'
	fi

	eval bindir='"${exec_prefix}/bin"'
	eval libdir='"${exec_prefix}/lib"'
	eval datadir='"${datarootdir}"'
	eval includedir='"${prefix}/include"'
	eval mandir='"/usr/pkg/man"'

	[ -z "$includedir" ] && includedir="${prefix}/include"

	need_include=
	[ "$includedir" != /usr/include ] && need_include="-I$includedir"

	need_subinclude=
	[ "yes" = yes ] && need_subinclude="-I$includedir/$THIS"

	eval LDFLAGS='"-L/usr/pkg/lib -Wl,-R/usr/pkg/lib"'
	eval LIBS='"-lncurses "'
	LIBS="-l${THIS} $LIBS"

	# If the directory given by --libdir is not in the LDFLAGS+LIBS set,
	# prepend it to LDFLAGS to help link this application's library.
	found=no
	for opt in $LDFLAGS $LIBS
	do
		if [ "x-L${libdir}" = "x$opt" ]
		then
			found=yes
			break
		fi
	done
	if [ $found = no ]
	then
		[ -n "$LFLAGS" ] && LDFLAGS=" $LFDLAGS"
		LDFLAGS="-L${libdir}$LDFLAGS"
	fi
	[ -z "$LDFLAGS" ] && LDFLAGS="-L${exec_prefix}/lib"

	# 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 $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
			/usr/lib) # skip standard libdir
				if [ "$lib_check" = "$libdir" ]
				then
					lib_first=yes
					IFS_save="$IFS"
					IFS='|'
					LIBDIRS="/usr/lib"
					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

	case "$1" in
	-*=*)
		ARG=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'`
		;;
	*)
		ARG=
		;;
	esac

	case "$1" in
	# basic configuration
	--prefix=*)
		prefix="$ARG"
		[ -z "$exec_prefix" ] && exec_prefix="$ARG"
		same_prefix=no
		;;
	--prefix)
		echo "$prefix"
		;;
	--exec-prefix=*)
		exec_prefix="$ARG"
		same_exec_prefix=no
		;;
	--exec-prefix)
		echo "$exec_prefix"
		;;
	# compile/link
	--cflags)
		OPTS=
		for opt in -O2 -I/usr/pkg/include/ncurses -I./include -I/usr/pkg/include/ncurses -D_NETBSD_SOURCE -D_XOPEN_SOURCE_EXTENDED $need_subinclude
		do
			case "x$opt" in
			x-[DIU]*)
				OPTS="$OPTS $opt"
				[ "x$opt" = "x$need_include" ] && need_include=
				;;
			x-Wl,*)
				OPTS="$OPTS $opt"
				;;
			x-[OQW]*|x-g)
				;;
			*)
				OPTS="$OPTS $opt"
				;;
			esac
		done
		printf "%s\n" "$OPTS $need_include"
		;;
	--cflags-only-I)
		OPTS=
		for opt in -O2 -I/usr/pkg/include/ncurses -I./include -I/usr/pkg/include/ncurses -D_NETBSD_SOURCE -D_XOPEN_SOURCE_EXTENDED $need_subinclude
		do
			case "x$opt" in
			x-I*)
				OPTS="$OPTS $opt"
				[ "x$opt" = "x$need_include" ] && need_include=
				;;
			*)
				;;
			esac
		done
		printf "%s\n" "$OPTS $need_include"
		;;
	--cflags-only-other)
		OPTS=
		for opt in -O2 -I/usr/pkg/include/ncurses -I./include -I/usr/pkg/include/ncurses -D_NETBSD_SOURCE -D_XOPEN_SOURCE_EXTENDED
		do
			case "x$opt" in
			x-Wl,*)
				OPTS="$OPTS $opt"
				;;
			x-[IOQW]*|x-g)
				;;
			*)
				OPTS="$OPTS $opt"
				;;
			esac
		done
		printf "%s\n" "$OPTS"
		;;
	--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 "5.0.20250116"
		;;
	--abi-version)
		echo "6:3:5" | sed -e 's/:/./g'
		;;
	# locations
	--bindir)
		echo "${bindir}"
		;;
	--datadir)
		echo "${datadir}"
		;;
	--includedir)
		INCS=
		if [ "${includedir}" != /usr/include ]; then
			INCS="${includedir}"
		fi
		echo "$INCS"
		;;
	--libdir)
		echo "${libdir}"
		;;
	--mandir)
		echo "${mandir}"
		;;
	# general info
	--help)
		cat <<ENDHELP
Usage: ${THIS}-config [options]

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

  --cflags            echos the C compiler flags needed to compile for ${THIS}
  --cflags-only-I     echos only -I C compiler flags needed with ${THIS}
  --cflags-only-other echos only C compiler flags other than -I for ${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}

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

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