Blame sofort/tools/pkgconf.sh

786bb8
#!/bin/sh
786bb8
7d79b0
# pkgconf.sh: generate a pkgconf manifest file.
7d79b0
# this file is covered by COPYING.SOFORT.
7d79b0
e60917
set -eu
e60917
786bb8
# prefix, exec_prefix
786bb8
if [ "$PKGCONF_PREFIX" = "$PKGCONF_EXEC_PREFIX" ]; then
40ff98
	pkgconf_prefix="${PKGCONF_PREFIX}"
40ff98
	pkgconf_exec_prefix='${prefix}'
786bb8
else
40ff98
	pkgconf_prefix="${PKGCONF_PREFIX}"
40ff98
	pkgconf_exec_prefix="${PKGCONF_EXEC_PREFIX}"
786bb8
fi
786bb8
786bb8
786bb8
# (relative) includedir
40ff98
if [ -z "$PKGCONF_INCLUDEDIR" ]; then
40ff98
	pkgconf_includedir=
40ff98
	pkgconf_cflags=
786bb8
else
40ff98
	prefix=$(dirname "$PKGCONF_INCLUDEDIR")
40ff98
	base=$(basename "$PKGCONF_INCLUDEDIR")
40ff98
131c6a
	if [ "$prefix" = '/' ]; then
131c6a
		prefix=
131c6a
	fi
131c6a
40ff98
	if [ "$prefix/$base" = "$PKGCONF_PREFIX/$base" ]; then
40ff98
		pkgconf_includedir='${prefix}/'"${base}"
40ff98
		pkgconf_cflags='-I${includedir}'
40ff98
	else
40ff98
		pkgconf_includedir="${PKGCONF_INCLUDEDIR}"
40ff98
		pkgconf_cflags='-I${includedir}'
40ff98
	fi
786bb8
fi
786bb8
786bb8
40ff98
# (relative) libdir (blank unless needed)
40ff98
if [ -z "$PKGCONF_LIBDIR" ]; then
40ff98
	pkgconf_libdir=
786bb8
else
40ff98
	prefix=$(dirname "$PKGCONF_LIBDIR")
40ff98
	base=$(basename "$PKGCONF_LIBDIR")
40ff98
131c6a
	if [ "$prefix" = '/' ]; then
131c6a
		prefix=
131c6a
	fi
131c6a
40ff98
	if [ "$prefix/$base" = "$PKGCONF_EXEC_PREFIX/$base" ]; then
40ff98
		pkgconf_libdir='${exec_prefix}/'"${base}"
40ff98
	else
40ff98
		pkgconf_libdir='${prefix}/'"${PKGCONF_LIBDIR}"
40ff98
	fi
786bb8
fi
786bb8
40ff98
40ff98
# ldflags (--libs)
40ff98
if [ -n "$pkgconf_libdir" ] &&  [ -n "${PKGCONF_NAME}" ]; then
42cfaf
	pkgconf_ldflags='-L${libdir}'" -l${PKGCONF_NAME}"
40ff98
elif [ -n "${PKGCONF_NAME}" ]; then
40ff98
	pkgconf_ldflags="-l${PKGCONF_NAME}"
786bb8
else
42cfaf
	pkgconf_ldflags='-L${libdir}'
786bb8
fi
786bb8
786bb8
40ff98
# cflags
40ff98
if [ -n "$pkgconf_cflags" ] || [ -n "${PKGCONF_DEFS}" ]; then
1c6fd8
	pkgconf_cflags="$pkgconf_cflags ${PKGCONF_DEFS}"
40ff98
	pkgconf_cflags=$(printf '%s' "$pkgconf_cflags" | sed -e 's/^[ \t]*//g')
40ff98
fi
786bb8
786bb8
786bb8
# repo (optional)
40ff98
if [ -z "${PKGCONF_REPO}" ]; then
40ff98
	pkgconf_repo='#'
40ff98
else
40ff98
	pkgconf_repo="Repo:        ${PKGCONF_REPO}"
786bb8
fi
786bb8
786bb8
# patches (optional)
40ff98
if [ -z "${PKGCONF_PSRC}" ]; then
40ff98
	pkgconf_psrc='#'
40ff98
else
40ff98
	pkgconf_psrc="Patches:     ${PKGCONF_PSRC}"
786bb8
fi
786bb8
40ff98
# distro (optional)
40ff98
if [ -z "${PKGCONF_DURL}" ]; then
40ff98
	pkgconf_durl='#'
786bb8
else
40ff98
	pkgconf_durl="Distro:      ${PKGCONF_DURL}"
786bb8
fi
786bb8
f8f71a
# bug reports (optional)
f8f71a
if [ -z "${PKGCONF_BUGS}" ]; then
f8f71a
	pkgconf_bugs='#'
f8f71a
else
f8f71a
	pkgconf_bugs="Bug reports: ${PKGCONF_BUGS}"
f8f71a
fi
f8f71a
f8f71a
# project home page (optional)
f8f71a
if [ -z "${PKGCONF_HOME}" ]; then
f8f71a
	pkgconf_home='#'
f8f71a
else
f8f71a
	pkgconf_home="Home page:   ${PKGCONF_HOME}"
f8f71a
fi
f8f71a
786bb8
40ff98
# output (without trailing spaces)
40ff98
cat << _EOF | grep -v '^#' | sed 's/[ \t]*$//'
40ff98
###
40ff98
prefix=$pkgconf_prefix
40ff98
exec_prefix=$pkgconf_exec_prefix
40ff98
includedir=$pkgconf_includedir
40ff98
libdir=$pkgconf_libdir
40ff98
40ff98
Name:        ${PKGCONF_NAME}
40ff98
Description: ${PKGCONF_DESC}
40ff98
URL:         ${PKGCONF_USRC}
40ff98
Version:     ${PKGCONF_VERSION}
40ff98
$pkgconf_repo
40ff98
$pkgconf_psrc
40ff98
$pkgconf_durl
f8f71a
$pkgconf_bugs
f8f71a
$pkgconf_home
40ff98
40ff98
Cflags:      $pkgconf_cflags
40ff98
Libs:        $pkgconf_ldflags
40ff98
###
40ff98
_EOF
40ff98
40ff98
# all done
40ff98
exit 0