123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #!/bin/sh
- VERSION=1.2.2
- 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 <<EOF
- # Autogenerated by ./configure
- PACKAGE = Badwolf
- VERSION = ${VERSION}
- VERSION_FULL = ${VERSION_FULL}
- PREFIX = ${PREFIX}
- BINDIR = ${BINDIR}
- MANDIR = ${MANDIR}
- DOCDIR = ${DOCDIR}
- DATADIR = ${DATADIR}
- APPSDIR = ${APPSDIR}
- PKGCONFIG = ${PKGCONFIG}
- CC = ${CC}
- INKSCAPE = ${INKSCAPE}
- MSGFMT = ${MSGFMT}
- DBG = ${DBG}
- MANDOC = ${MANDOC}
- CFLAGS = ${CFLAGS} -DDATADIR=\"\${DATADIR}\" -DPACKAGE=\"\${PACKAGE}\" -D_XOPEN_SOURCE=700 -D_POSIX_C_SOURCE=200809L -DVERSION=\"\${VERSION_FULL}\" ${DEPS_cflags}
- LIBS = ${DEPS_libs}
- ICON_SIZES = ${ICON_SIZES}
- EOF
- is_ok
- echo 'Done, you can now run make'
|