#!/bin/sh VERSION=1.2.0 VERSION_FULL=${VERSION}$(./version.sh) PREFIX="${PREFIX:-/usr/local}" BINDIR="${BINDIR:-${PREFIX}/bin}" MANDIR="${MANDIR:-${PREFIX}/share/man}" DOCDIR="${DOCDIR:-${PREFIX}/share/doc/badwolf-${VERSION}}" DATADIR="${DATADIR:-${PREFIX}/share/badwolf}" APPSDIR="${APPSDIR:-${PREFIX}/share/applications}" PKGCONFIG="${PKGCONFIG:-pkg-config}" MSGFMT="${MSGFMT:-msgfmt}" INKSCAPE="${INKSCAPE:-inkscape}" CC="${CC:-cc}" CFLAGS="${CFLAGS:--g -O2 -pie -fPIE} -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wall -Wextra -Wconversion -Wsign-conversion -Werror=implicit-function-declaration -Werror=implicit-int -Werror=vla ${EXTRA_CFLAGS}" MANDOC="mandoc" DEPS="gtk+-3.0 libxml-2.0" is_ok() { status="$?" if test $status -eq 0; then printf " OK\n" else printf " FAIL\n" fi return $status } required() { is_ok || exit 1 } pkg_config_check() { printf 'Checking: %s %s ...' "${PKGCONFIG}" "$*" "${PKGCONFIG}" "$@" is_ok } printf 'Checking %s command existance ...' "${PKGCONFIG}" command -v "${PKGCONFIG}" >/dev/null ; required printf 'Checking %s command existance ...' "${CC}" command -v "${CC}" >/dev/null ; required printf 'Checking %s command existance ...' "${MANDOC}" if command -v "${CC}" >/dev/null ; is_ok then : else MANDOC="true" fi for dep in ${DEPS} do pkg_config_check --exists "$dep" || exit 1 done case "${WITH_WEBKITGTK}n" in 4.1n) pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.1 || exit 1 DEPS="${DEPS} webkit2gtk-4.1" ;; 4.0n) pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.0 || exit 1 DEPS="${DEPS} webkit2gtk-4.0" ;; n) echo "notice: Packagers should consider setting the ABI version (4.0 or 4.1) in WITH_WEBKITGTK" >&2 if pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.1 then DEPS="${DEPS} webkit2gtk-4.1" else pkg_config_check --atleast-version=2.32.0 webkit2gtk-4.0 || exit 1 DEPS="${DEPS} webkit2gtk-4.0" fi ;; *) echo "error: invalid webkit2gtk version in WITH_WEBKITGTK environment variable, must be 4.0 or 4.1" >&2 exit 1 ;; esac case "${WITH_URI_PARSER}n" in gurin) echo "URI parser selected: GUri from glib-2.0" pkg_config_check --atleast-version=2.66.0 glib-2.0 || exit 1 DEPS="${DEPS} glib-2.0" ;; libsoup2n) echo "URI parser selected: libsoup-2.4" pkg_config_check libsoup-2.4 || exit 1 DEPS="${DEPS} libsoup-2.4" CFLAGS="${CFLAGS} -DUSE_LIBSOUP2" if echo "${DEPS}" | grep -q 'webkit2gtk-4.1' then echo 'warning: libsoup2 selected while WebKitGTK with libsoup3 API is used' >&2 fi ;; n) echo "notice: Packagers should consider setting the URI parsing library (guri or libsoup2) in WITH_URI_PARSER" >&2 if echo "${DEPS}" | grep -q 'webkit2gtk-4.0' then pkg_config_check libsoup-2.4 || exit 1 echo "URI parser selected: libsoup-2.4" DEPS="${DEPS} libsoup-2.4" CFLAGS="${CFLAGS} -DUSE_LIBSOUP2" else pkg_config_check --atleast-version="${min_glib_guri}" glib-2.0 || exit 1 echo "URI parser selected: GUri from glib-2.0" DEPS="${DEPS} glib-2.0" fi ;; *) echo "error: invalid uri provider in WITH_URI_PARSER environment variable, must be guri or libsoup2" >&2 ;; esac get_cflags() { "${PKGCONFIG}" --cflags "${DEPS}"; } DEPS_cflags="$(get_cflags)" get_libs() { "${PKGCONFIG}" --libs "${DEPS}"; } DEPS_libs="$(get_libs)" ICON_SIZES="$(for i in 24 32 48 64 128 256; do printf 'icons/hicolor/%sx%s/apps/badwolf.png ' $i $i ; done)" printf 'Writing to config.mk ...' cat >config.mk <