1
0
mirror of https://git.suyu.dev/suyu/suyu synced 2025-09-17 11:37:59 -05:00

Initial commit

This commit is contained in:
Crimson-Hawk
2024-03-05 16:42:40 +08:00
commit f1e4595ebf
39576 changed files with 7006612 additions and 0 deletions

View File

@@ -0,0 +1,237 @@
format = 2
pkgname = mingw-w64-i686-libwinpthread-git
pkgbase = mingw-w64-winpthreads-git
pkgver = 9.0.0.6373.5be8fcd83-1
pkgarch = any
pkgbuild_sha256sum = 0496ea39f10aea0a134227fbfe9dc8581d90246c154337a239a4fd909963c6b2
packager = CI (msys2-autobuild/f49b8afb/1657953429)
builddate = 1641380415
builddir = /c/M/mingw-w64-winpthreads-git
startdir = /c/M/mingw-w64-winpthreads-git
buildtool = makepkg
buildtoolver = 6.0.1
buildenv = !distcc
buildenv = color
buildenv = !ccache
buildenv = check
buildenv = !sign
options = strip
options = docs
options = !libtool
options = staticlibs
options = emptydirs
options = zipman
options = purge
options = !debug
options = !lto
installed = autoconf-2.71-2-any
installed = automake-wrapper-11-3-any
installed = automake1.11-1.11.6-6-any
installed = automake1.12-1.12.6-6-any
installed = automake1.13-1.13.4-7-any
installed = automake1.14-1.14.1-6-any
installed = automake1.15-1.15.1-4-any
installed = automake1.16-1.16.3-3-any
installed = base-2020.12-1-any
installed = base-devel-2021.12-1-any
installed = bash-5.1.008-1-x86_64
installed = bash-completion-2.11-1-any
installed = binutils-2.37-5-x86_64
installed = bison-3.8.2-1-x86_64
installed = brotli-1.0.9-2-x86_64
installed = bsdtar-3.5.2-1-x86_64
installed = bzip2-1.0.8-3-x86_64
installed = ca-certificates-20210119-3-any
installed = coreutils-8.32-2-x86_64
installed = curl-7.80.0-3-x86_64
installed = dash-0.5.11.5-1-x86_64
installed = db-5.3.28-3-x86_64
installed = diffstat-1.64-1-x86_64
installed = diffutils-3.8-1-x86_64
installed = dos2unix-7.4.2-1-x86_64
installed = expat-2.4.2-1-x86_64
installed = file-5.41-1-x86_64
installed = filesystem-2021.11-2-x86_64
installed = findutils-4.8.0-1-x86_64
installed = flex-2.6.4-2-x86_64
installed = gawk-5.1.0-2-x86_64
installed = gcc-libs-11.2.0-3-x86_64
installed = gdbm-1.22-1-x86_64
installed = getent-2.18.90-3-x86_64
installed = gettext-0.21-1-x86_64
installed = git-2.34.1-1-x86_64
installed = glib2-2.68.4-1-x86_64
installed = gmp-6.2.1-1-x86_64
installed = gnupg-2.2.32-2-x86_64
installed = gperf-3.1-2-x86_64
installed = grep-1~3.0-3-x86_64
installed = groff-1.22.4-1-x86_64
installed = gzip-1.11-1-x86_64
installed = heimdal-7.7.0-3-x86_64
installed = heimdal-libs-7.7.0-3-x86_64
installed = icu-70.1-1-x86_64
installed = inetutils-1.9.4-3-x86_64
installed = info-6.8-2-x86_64
installed = intltool-0.51.0-2-x86_64
installed = less-590-1-x86_64
installed = libargp-20110921-3-x86_64
installed = libasprintf-0.21-1-x86_64
installed = libassuan-2.5.5-1-x86_64
installed = libbz2-1.0.8-3-x86_64
installed = libcrypt-2.1-3-x86_64
installed = libcurl-7.80.0-3-x86_64
installed = libdb-5.3.28-3-x86_64
installed = libedit-20210910_3.1-1-x86_64
installed = libexpat-2.4.2-1-x86_64
installed = libffi-3.3-1-x86_64
installed = libgcrypt-1.9.4-1-x86_64
installed = libgdbm-1.22-1-x86_64
installed = libgettextpo-0.21-1-x86_64
installed = libgnutls-3.7.2-1-x86_64
installed = libgpg-error-1.43-1-x86_64
installed = libgpgme-1.16.0-1-x86_64
installed = libhogweed-3.7.3-1-x86_64
installed = libiconv-1.16-2-x86_64
installed = libidn2-2.3.2-1-x86_64
installed = libintl-0.21-1-x86_64
installed = libksba-1.6.0-1-x86_64
installed = libltdl-2.4.6-13-x86_64
installed = liblz4-1.9.3-1-x86_64
installed = liblzma-5.2.5-1-x86_64
installed = libnettle-3.7.3-1-x86_64
installed = libnghttp2-1.46.0-1-x86_64
installed = libnpth-1.6-1-x86_64
installed = libopenssl-1.1.1.m-1-x86_64
installed = libp11-kit-0.24.0-1-x86_64
installed = libpcre-8.45-1-x86_64
installed = libpcre2_16-10.37-1-x86_64
installed = libpcre2_32-10.37-1-x86_64
installed = libpcre2_8-10.37-1-x86_64
installed = libpcre2posix-10.37-1-x86_64
installed = libpsl-0.21.1-2-x86_64
installed = libreadline-8.1.001-1-x86_64
installed = libsqlite-3.36.0-3-x86_64
installed = libssh2-1.10.0-1-x86_64
installed = libtasn1-4.18.0-2-x86_64
installed = libtool-2.4.6-13-x86_64
installed = libunistring-0.9.10-1-x86_64
installed = libutil-linux-2.35.2-1-x86_64
installed = libxml2-2.9.12-3-x86_64
installed = libxslt-1.1.34-4-x86_64
installed = libzstd-1.5.1-1-x86_64
installed = m4-1.4.19-2-x86_64
installed = make-4.3-1-x86_64
installed = mingw-w64-i686-autotools-2021.12.15-1-any
installed = mingw-w64-i686-binutils-2.37-4-any
installed = mingw-w64-i686-bzip2-1.0.8-2-any
installed = mingw-w64-i686-ca-certificates-20210119-1-any
installed = mingw-w64-i686-crt-git-9.0.0.6373.5be8fcd83-1-any
installed = mingw-w64-i686-expat-2.4.1-1-any
installed = mingw-w64-i686-gcc-11.2.0-5-any
installed = mingw-w64-i686-gcc-ada-11.2.0-5-any
installed = mingw-w64-i686-gcc-fortran-11.2.0-5-any
installed = mingw-w64-i686-gcc-libgfortran-11.2.0-5-any
installed = mingw-w64-i686-gcc-libs-11.2.0-5-any
installed = mingw-w64-i686-gcc-objc-11.2.0-5-any
installed = mingw-w64-i686-gdb-11.1-2-any
installed = mingw-w64-i686-gdb-multiarch-11.1-2-any
installed = mingw-w64-i686-gettext-0.21-1-any
installed = mingw-w64-i686-gmp-6.2.1-2-any
installed = mingw-w64-i686-headers-git-9.0.0.6373.5be8fcd83-1-any
installed = mingw-w64-i686-isl-0.24-1-any
installed = mingw-w64-i686-libffi-3.3-4-any
installed = mingw-w64-i686-libgccjit-11.2.0-5-any
installed = mingw-w64-i686-libiconv-1.16-2-any
installed = mingw-w64-i686-libmangle-git-9.0.0.6364.2194d504e-1-any
installed = mingw-w64-i686-libsystre-1.0.1-4-any
installed = mingw-w64-i686-libtasn1-4.18.0-1-any
installed = mingw-w64-i686-libtre-git-r128.6fb7206-2-any
installed = mingw-w64-i686-libwinpthread-git-9.0.0.6364.2194d504e-1-any
installed = mingw-w64-i686-make-4.3-1-any
installed = mingw-w64-i686-mpc-1.2.1-1-any
installed = mingw-w64-i686-mpdecimal-2.5.1-1-any
installed = mingw-w64-i686-mpfr-4.1.0.p13-1-any
installed = mingw-w64-i686-ncurses-6.3-3-any
installed = mingw-w64-i686-openssl-1.1.1.m-1-any
installed = mingw-w64-i686-p11-kit-0.24.0-1-any
installed = mingw-w64-i686-pkgconf-1.8.0-2-any
installed = mingw-w64-i686-python-3.9.7-4-any
installed = mingw-w64-i686-readline-8.1.001-1-any
installed = mingw-w64-i686-sqlite3-3.37.0-1-any
installed = mingw-w64-i686-tcl-8.6.11-5-any
installed = mingw-w64-i686-termcap-1.3.1-6-any
installed = mingw-w64-i686-tk-8.6.11.1-2-any
installed = mingw-w64-i686-tools-git-9.0.0.6364.2194d504e-1-any
installed = mingw-w64-i686-tzdata-2021e-1-any
installed = mingw-w64-i686-windows-default-manifest-6.4-3-any
installed = mingw-w64-i686-winpthreads-git-9.0.0.6364.2194d504e-1-any
installed = mingw-w64-i686-winstorecompat-git-9.0.0.6364.2194d504e-1-any
installed = mingw-w64-i686-xxhash-0.8.1-1-any
installed = mingw-w64-i686-xz-5.2.5-2-any
installed = mingw-w64-i686-zlib-1.2.11-9-any
installed = mingw-w64-i686-zstd-1.5.1-1-any
installed = mintty-1~3.5.2-1-x86_64
installed = mpfr-4.1.0-1-x86_64
installed = msys2-keyring-1~20211228-1-any
installed = msys2-launcher-1.4-1-x86_64
installed = msys2-runtime-3.3.3-4-x86_64
installed = nano-5.9-1-x86_64
installed = ncurses-6.2-2-x86_64
installed = nettle-3.7.3-1-x86_64
installed = openssh-8.8p1-1-x86_64
installed = openssl-1.1.1.m-1-x86_64
installed = p11-kit-0.24.0-1-x86_64
installed = pacman-6.0.1-8-x86_64
installed = pacman-contrib-1.4.0-2-x86_64
installed = pacman-mirrors-20211230-1-any
installed = patch-2.7.6-1-x86_64
installed = patchutils-0.4.2-2-x86_64
installed = pcre2-10.37-1-x86_64
installed = perl-5.32.1-2-x86_64
installed = perl-Authen-SASL-2.16-2-any
installed = perl-Clone-0.45-2-x86_64
installed = perl-Convert-BinHex-1.125-1-any
installed = perl-Encode-Locale-1.05-1-any
installed = perl-Error-0.17029-1-any
installed = perl-File-Listing-6.14-1-any
installed = perl-HTML-Parser-3.76-1-x86_64
installed = perl-HTML-Tagset-3.20-2-any
installed = perl-HTTP-Cookies-6.10-1-any
installed = perl-HTTP-Daemon-6.12-1-any
installed = perl-HTTP-Date-6.05-1-any
installed = perl-HTTP-Message-6.35-1-any
installed = perl-HTTP-Negotiate-6.01-2-any
installed = perl-IO-HTML-1.004-1-any
installed = perl-IO-Socket-SSL-2.072-1-any
installed = perl-IO-Stringy-2.113-1-any
installed = perl-LWP-MediaTypes-6.04-1-any
installed = perl-MIME-tools-5.509-1-any
installed = perl-MailTools-2.21-1-any
installed = perl-Net-HTTP-6.21-1-any
installed = perl-Net-SMTP-SSL-1.04-1-any
installed = perl-Net-SSLeay-1.90-1-x86_64
installed = perl-TermReadKey-2.38-2-x86_64
installed = perl-TimeDate-2.33-1-any
installed = perl-Try-Tiny-0.31-1-any
installed = perl-URI-5.10-1-any
installed = perl-WWW-RobotRules-6.02-2-any
installed = perl-XML-Parser-2.46-3-x86_64
installed = perl-libwww-6.57-1-any
installed = pinentry-1.2.0-1-x86_64
installed = pkgconf-1.8.0-1-x86_64
installed = rebase-4.5.0-1-x86_64
installed = sed-4.8-2-x86_64
installed = tar-1.34-2-x86_64
installed = tcl-8.6.10-1-x86_64
installed = texinfo-6.8-2-x86_64
installed = texinfo-tex-6.8-2-x86_64
installed = tftp-hpa-5.2-4-x86_64
installed = time-1.9-2-x86_64
installed = tzcode-2021e-1-x86_64
installed = util-linux-2.35.2-1-x86_64
installed = vim-8.2.3582-1-x86_64
installed = wget-1.21.2-1-x86_64
installed = which-2.21-3-x86_64
installed = xz-5.2.5-1-x86_64
installed = zlib-1.2.11-1-x86_64
installed = zstd-1.5.1-1-x86_64

Binary file not shown.

View File

@@ -0,0 +1,21 @@
# Generated by makepkg 6.0.1
pkgname = mingw-w64-i686-libwinpthread-git
pkgbase = mingw-w64-winpthreads-git
pkgver = 9.0.0.6373.5be8fcd83-1
pkgdesc = MinGW-w64 winpthreads library
url = https://mingw-w64.sourceforge.io/
builddate = 1641380415
packager = CI (msys2-autobuild/f49b8afb/1657953429)
size = 73251
arch = any
license = MIT
license = BSD
group = mingw-w64-i686-toolchain
conflict = mingw-w64-i686-libwinpthread
provides = mingw-w64-i686-libwinpthread
makedepend = git
makedepend = mingw-w64-i686-autotools
makedepend = mingw-w64-i686-gcc
makedepend = mingw-w64-i686-binutils
makedepend = mingw-w64-i686-crt-git
makedepend = mingw-w64-i686-headers-git

View File

@@ -0,0 +1 @@
none / cygdrive binary,posix=0,noacl,user 0 0

View File

@@ -0,0 +1,275 @@
# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
# serial 12 (pkg-config-0.29.2)
dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
dnl
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program is distributed in the hope that it will be useful, but
dnl WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
dnl General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
dnl 02111-1307, USA.
dnl
dnl As a special exception to the GNU General Public License, if you
dnl distribute this file as part of a program that contains a
dnl configuration script generated by Autoconf, you may include it under
dnl the same distribution terms that you use for the rest of that
dnl program.
dnl PKG_PREREQ(MIN-VERSION)
dnl -----------------------
dnl Since: 0.29
dnl
dnl Verify that the version of the pkg-config macros are at least
dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
dnl installed version of pkg-config, this checks the developer's version
dnl of pkg.m4 when generating configure.
dnl
dnl To ensure that this macro is defined, also add:
dnl m4_ifndef([PKG_PREREQ],
dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
dnl
dnl See the "Since" comment for each macro you use to see what version
dnl of the macros you require.
m4_defun([PKG_PREREQ],
[m4_define([PKG_MACROS_VERSION], [0.29.2])
m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
[m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
])dnl PKG_PREREQ
dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
dnl ----------------------------------
dnl Since: 0.16
dnl
dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
dnl first found in the path. Checks that the version of pkg-config found
dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
dnl used since that's the first version where most current features of
dnl pkg-config existed.
AC_DEFUN([PKG_PROG_PKG_CONFIG],
[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=m4_default([$1], [0.9.0])
AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
PKG_CONFIG=""
fi
fi[]dnl
])dnl PKG_PROG_PKG_CONFIG
dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------------------------------
dnl Since: 0.18
dnl
dnl Check to see whether a particular set of modules exists. Similar to
dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
dnl
dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
dnl only at the first occurence in configure.ac, so if the first place
dnl it's called might be skipped (such as if it is within an "if", you
dnl have to call PKG_CHECK_EXISTS manually
AC_DEFUN([PKG_CHECK_EXISTS],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
if test -n "$PKG_CONFIG" && \
AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
m4_default([$2], [:])
m4_ifvaln([$3], [else
$3])dnl
fi])
dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
dnl ---------------------------------------------
dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
dnl pkg_failed based on the result.
m4_define([_PKG_CONFIG],
[if test -n "$$1"; then
pkg_cv_[]$1="$$1"
elif test -n "$PKG_CONFIG"; then
PKG_CHECK_EXISTS([$3],
[pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes ],
[pkg_failed=yes])
else
pkg_failed=untried
fi[]dnl
])dnl _PKG_CONFIG
dnl _PKG_SHORT_ERRORS_SUPPORTED
dnl ---------------------------
dnl Internal check to see if pkg-config supports short errors.
AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi[]dnl
])dnl _PKG_SHORT_ERRORS_SUPPORTED
dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl --------------------------------------------------------------
dnl Since: 0.4.0
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
AC_DEFUN([PKG_CHECK_MODULES],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
pkg_failed=no
AC_MSG_CHECKING([for $2])
_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
_PKG_CONFIG([$1][_LIBS], [libs], [$2])
m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
and $1[]_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.])
if test $pkg_failed = yes; then
AC_MSG_RESULT([no])
_PKG_SHORT_ERRORS_SUPPORTED
if test $_pkg_short_errors_supported = yes; then
$1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
else
$1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
fi
# Put the nasty error message in config.log where it belongs
echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
m4_default([$4], [AC_MSG_ERROR(
[Package requirements ($2) were not met:
$$1_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
_PKG_TEXT])[]dnl
])
elif test $pkg_failed = untried; then
AC_MSG_RESULT([no])
m4_default([$4], [AC_MSG_FAILURE(
[The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
_PKG_TEXT
To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
])
else
$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
AC_MSG_RESULT([yes])
$3
fi[]dnl
])dnl PKG_CHECK_MODULES
dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
dnl [ACTION-IF-NOT-FOUND])
dnl ---------------------------------------------------------------------
dnl Since: 0.29
dnl
dnl Checks for existence of MODULES and gathers its build flags with
dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
dnl and VARIABLE-PREFIX_LIBS from --libs.
dnl
dnl Note that if there is a possibility the first call to
dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
dnl configure.ac.
AC_DEFUN([PKG_CHECK_MODULES_STATIC],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
_save_PKG_CONFIG=$PKG_CONFIG
PKG_CONFIG="$PKG_CONFIG --static"
PKG_CHECK_MODULES($@)
PKG_CONFIG=$_save_PKG_CONFIG[]dnl
])dnl PKG_CHECK_MODULES_STATIC
dnl PKG_INSTALLDIR([DIRECTORY])
dnl -------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable pkgconfigdir as the location where a module
dnl should install pkg-config .pc files. By default the directory is
dnl $libdir/pkgconfig, but the default can be changed by passing
dnl DIRECTORY. The user can override through the --with-pkgconfigdir
dnl parameter.
AC_DEFUN([PKG_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
m4_pushdef([pkg_description],
[pkg-config installation directory @<:@]pkg_default[@:>@])
AC_ARG_WITH([pkgconfigdir],
[AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
[with_pkgconfigdir=]pkg_default)
AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
])dnl PKG_INSTALLDIR
dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
dnl --------------------------------
dnl Since: 0.27
dnl
dnl Substitutes the variable noarch_pkgconfigdir as the location where a
dnl module should install arch-independent pkg-config .pc files. By
dnl default the directory is $datadir/pkgconfig, but the default can be
dnl changed by passing DIRECTORY. The user can override through the
dnl --with-noarch-pkgconfigdir parameter.
AC_DEFUN([PKG_NOARCH_INSTALLDIR],
[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
m4_pushdef([pkg_description],
[pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
AC_ARG_WITH([noarch-pkgconfigdir],
[AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
[with_noarch_pkgconfigdir=]pkg_default)
AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
m4_popdef([pkg_default])
m4_popdef([pkg_description])
])dnl PKG_NOARCH_INSTALLDIR
dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
dnl -------------------------------------------
dnl Since: 0.28
dnl
dnl Retrieves the value of the pkg-config variable for the given module.
AC_DEFUN([PKG_CHECK_VAR],
[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
_PKG_CONFIG([$1], [variable="][$3]["], [$2])
AS_VAR_COPY([$1], [pkg_cv_][$1])
AS_VAR_IF([$1], [""], [$5], [$4])dnl
])dnl PKG_CHECK_VAR

View File

@@ -0,0 +1,424 @@
<!--
Copyright (C) 2010 Dan Nicholson.
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<style type="text/css">
pre { background-color: #f0f0f0; padding: 0.4cm; }
</style>
<title>Guide to pkg-config</title>
</head>
<body>
<h1><a name="top">Guide to pkg-config</a></h1>
<h3>Dan Nicholson</h3>
<ul>
<li><a href="#overview">Overview</a></li>
<li><a href="#why">Why?</a></li>
<li><a href="#concepts">Concepts</a></li>
<li><a href="#writing">Writing pkg-config files</a></li>
<li><a href="#using">Using pkg-config files</a></li>
<!--<li><a href="#examples">Examples</a></li>-->
<li><a href="#faq">Frequently asked questions</a></li>
</ul>
<h2><a name="overview">Overview</a></h2>
<p>This document aims to give an overview to using the <tt>pkg-config</tt>
tool from the perspective of both a user and a developer. It reviews the
concepts behind <tt>pkg-config</tt>, how to write <tt>pkg-config</tt> files
to support your project, and how to use <tt>pkg-config</tt> to integrate
with 3rd party projects.</p>
<p>More information on <tt>pkg-config</tt> can be found at the
<a href="http://pkg-config.freedesktop.org/">website</a> and in the
<tt>pkg-config(1)</tt> manual page.</p>
<p>This document assumes usage of <tt>pkg-config</tt> on a Unix-like
operating system such as Linux. Some of the details may be different on
other platforms.</p>
<h2><a name="why">Why?</a></h2>
<p>Modern computer systems use many layered components to provide
applications to the user. One of the difficulties in assembling these parts
is properly integrating them. <tt>pkg-config</tt> collects metadata about
the installed libraries on the system and easily provides it to the user.
</p>
<p>Without a metadata system such as <tt>pkg-config</tt>, it can be very
difficult to locate and obtain details about the services provided on a
given computer. For a developer, installing <tt>pkg-config</tt> files with
your package greatly eases adoption of your API.</p>
<h2><a name="concepts">Concepts</a></h2>
<p>The primary use of <tt>pkg-config</tt> is to provide the necessary
details for compiling and linking a program to a library. This metadata is
stored in <tt>pkg-config</tt> files. These files have the suffix
<tt>.pc</tt> and reside in specific locations known to the
<tt>pkg-config</tt> tool. This will be described in more detail later.</p>
<p>The file format contains predefined metadata keywords and freeform
variables. An example may be illustrative:<p>
<pre>prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: foo
Description: The foo library
Version: 1.0.0
Cflags: -I${includedir}/foo
Libs: -L${libdir} -lfoo</pre>
<p>The keyword definitions such as <tt>Name:</tt> begin with a keyword
followed by a colon and the value. The variables such as <tt>prefix=</tt>
are a string and value separated by an equals sign. The keywords are defined
and exported by <tt>pkg-config</tt>. The variables are not necessary, but
can be used by the keyword definitions for flexibility or to store data not
covered by <tt>pkg-config</tt>.</p>
<p>Here is a short description of the keyword fields. A more in depth
description of these fields and how to use them effectively will be given in
the <a href="#writing">Writing pkg-config files</a> section.</p>
<ul>
<li><b>Name</b>: A human-readable name for the library or package. This
does not affect usage of the <tt>pkg-config</tt> tool, which uses the name
of the <tt>.pc</tt> file.</li>
<li><b>Description</b>: A brief description of the package.</li>
<li><b>URL</b>: An URL where people can get more information about and
download the package.</li>
<li><b>Version</b>: A string specifically defining the version of the
package.</li>
<li><b>Requires</b>: A list of packages required by this package. The
versions of these packages may be specified using the comparison operators
=, &lt;, &gt;, &lt;= or &gt;=.</li>
<li><b>Requires.private</b>: A list of private packages required by this
package but not exposed to applications. The version specific rules from
the <tt>Requires</tt> field also apply here.</li>
<li><b>Conflicts</b>: An optional field describing packages that this one
conflicts with. The version specific rules from the <tt>Requires</tt>
field also apply here. This field also takes multiple instances of the
same package. E.g., <tt>Conflicts: bar < 1.2.3, bar >= 1.3.0</tt>.</li>
<li><b>Cflags</b>: The compiler flags specific to this package and any
required libraries that don't support <tt>pkg-config</tt>. If the required
libraries support <tt>pkg-config</tt>, they should be added to
<tt>Requires</tt> or <tt>Requires.private</tt>.</li>
<li><b>Libs</b>: The link flags specific to this package and any required
libraries that don't support <tt>pkg-config</tt>. The same rule as
<tt>Cflags</tt> applies here.</li>
<li><b>Libs.private</b>: The link flags for private libraries required by
this package but not exposed to applications. The same rule as
<tt>Cflags</tt> applies here.</li>
</ul>
<h2><a name="writing">Writing pkg-config files</a></h2>
<p>When creating <tt>pkg-config</tt> files for a package, it is first
necessary to decide how they will be distributed. Each file is best used to
describe a single library, so each package should have at least as many
<tt>pkg-config</tt> files as they do installed libraries.</p>
<p>The package name is determined through the filename of the
<tt>pkg-config</tt> metadata file. This is the portion of the filename prior
to the <tt>.pc</tt> suffix. A common choice is to match the library name to
the <tt>.pc</tt> name. For instance, a package installing <tt>libfoo.so</tt>
would have a corresponding <tt>libfoo.pc</tt> file containing the
<tt>pkg-config</tt> metadata. This choice is not necessary; the <tt>.pc</tt>
file should simply be a unique identifier for your library. Following the
above example, <tt>foo.pc</tt> or <tt>foolib.pc</tt> would probably work
just as well.</p>
<p>The <tt>Name</tt>, <tt>Description</tt> and <tt>URL</tt> fields are
purely informational and should be easy to fill in. The <tt>Version</tt>
field is a bit trickier to ensure that it is usable by consumers of the
data. <tt>pkg-config</tt> uses the algorithm from
<a href="http://rpm.org/">RPM</a> for version comparisons. This works best
with a dotted decimal number such as <tt>1.2.3</tt> since letters can cause
unexpected results. The number should be monotonically increasing and be
as specific as possible in describing the library. Usually it's sufficient
to use the package's version number here since it's easy for consumers to
track.</p>
<p>Before describing the more useful fields, it will be helpful to
demonstrate variable definitions. The most common usage is to define the
installation paths so that they don't clutter the metadata fields. Since
the variables are expanded recursively, this is very helpful when used in
conjunction with autoconf derived paths.</p>
<pre>prefix=/usr/local
includedir=${prefix}/include
Cflags: -I${includedir}/foo</pre>
<p>The most important <tt>pkg-config</tt> metadata fields are
<tt>Requires</tt>, <tt>Requires.private</tt>, <tt>Cflags</tt>, <tt>Libs</tt>
and <tt>Libs.private</tt>. They will define the metadata used by external
projects to compile and link with the library.</p>
<p><tt>Requires</tt> and <tt>Requires.private</tt> define other modules
needed by the library. It is usually preferred to use the private variant of
<tt>Requires</tt> to avoid exposing unnecessary libraries to the program
that is linking with your library. If the program will not be using the
symbols of the required library, it should not be linking directly to that
library. See the discussion of
<a href="https://wiki.openmandriva.org/en/Overlinking_issues_in_packaging">overlinking</a>
for a more thorough explanation.</p>
<p>Since <tt>pkg-config</tt> always exposes the link flags of the
<tt>Requires</tt> libraries, these modules will become direct dependencies
of the program. On the other hand, libraries from <tt>Requires.private</tt>
will only be included when static linking. For this reason, it is usually
only appropriate to add modules from the same package in <tt>Requires</tt>.
</p>
<p>The <tt>Libs</tt> field contains the link flags necessary to use that
library. In addition, <tt>Libs</tt> and <tt>Libs.private</tt> contain link
flags for other libraries not supported by <tt>pkg-config</tt>. Similar to
the <tt>Requires</tt> field, it is preferred to add link flags for external
libraries to the <tt>Libs.private</tt> field so programs do not acquire an
additional direct dependency.</p>
<p>Finally, the <tt>Cflags</tt> contains the compiler flags for using the
library. Unlike the <tt>Libs</tt> field, there is not a private variant of
<tt>Cflags</tt>. This is because the data types and macro definitions are
needed regardless of the linking scenario.</p>
<h2><a name="using">Using pkg-config files</a></h2>
<p>Assuming that there are <tt>.pc</tt> files installed on the system, the
<tt>pkg-config</tt> tool is used to extract the metadata for usage. A short
description of the options can be seen by executing
<tt>pkg-config --help</tt>. A more in depth discussion can be found in the
<tt>pkg-config(1)</tt> manual page. This section will provide a brief
explanation of common usages.</tt>
<p>Consider a system with two modules, <tt>foo</tt> and <tt>bar</tt>.
Their <tt>.pc</tt> files might look like this:</p>
<pre>foo.pc:
prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: foo
Description: The foo library
Version: 1.0.0
Cflags: -I${includedir}/foo
Libs: -L${libdir} -lfoo
bar.pc:
prefix=/usr
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: bar
Description: The bar library
Version: 2.1.2
Requires.private: foo >= 0.7
Cflags: -I${includedir}
Libs: -L${libdir} -lbar</pre>
<p>The version of the modules can be obtained with the <tt>--modversion</tt>
option.</p>
<pre>$ pkg-config --modversion foo
1.0.0
$ pkg-config --modversion bar
2.1.2</pre>
<p>To print the link flags needed for each module, use the <tt>--libs</tt>
option.</p>
<pre>$ pkg-config --libs foo
-lfoo
$ pkg-config --libs bar
-lbar</pre>
<p>Notice that <tt>pkg-config</tt> has suppressed part of the <tt>Libs</tt>
field for both modules. This is because it treats the <tt>-L</tt> flag
specially and knows that the <tt>${libdir}</tt> directory <tt>/usr/lib</tt>
is part of the system linker search path. This keeps <tt>pkg-config</tt>
from interfering with the linker operation.</p>
<p>Also, although <tt>foo</tt> is required by <tt>bar</tt>, the link flags
for <tt>foo</tt> are not output. This is because <tt>foo</tt> is not
directly needed by an application that only wants to use the <tt>bar</tt>
library. For statically linking a <tt>bar</tt> application, we need both
sets of linker flags:</p>
<pre>$ pkg-config --libs --static bar
-lbar -lfoo</pre>
<p><tt>pkg-config</tt> needs to output both sets of link flags in this case
to ensure that the statically linked application will find all the necessary
symbols. On the other hand, it will always output all the <tt>Cflags</tt>.
</p>
<pre>$ pkg-config --cflags bar
-I/usr/include/foo
$ pkg-config --cflags --static bar
-I/usr/include/foo</pre>
<p>Another useful option, <tt>--exists</tt>, can be used to test for a
module's availability.</p>
<pre>$ pkg-config --exists foo
$ echo $?
0</pre>
<p>One of the nicest features of <tt>pkg-config</tt> is providing version
checking. It can be used to determine if a sufficient version is available.
</p>
<pre>$ pkg-config --libs "bar >= 2.7"
Requested 'bar >= 2.7' but version of bar is 2.1.2</pre>
<p>Some commands will provide more verbose output when combined with the
<tt>--print-errors</tt> option.</p>
<pre>$ pkg-config --exists --print-errors xoxo
Package xoxo was not found in the pkg-config search path.
Perhaps you should add the directory containing `xoxo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xoxo' found</pre>
<p>The message above references the <tt>PKG_CONFIG_PATH</tt> environment
variable. This variable is used to augment <tt>pkg-config</tt>'s search
path. On a typical Unix system, it will search in the directories
<tt>/usr/lib/pkgconfig</tt> and <tt>/usr/share/pkgconfig</tt>. This will
usually cover system installed modules. However, some local modules may be
installed in a different prefix such as <tt>/usr/local</tt>. In that case,
it's necessary to prepend the search path so that <tt>pkg-config</tt> can
locate the <tt>.pc</tt> files.</p>
<pre>$ pkg-config --modversion hello
Package hello was not found in the pkg-config search path.
Perhaps you should add the directory containing `hello.pc'
to the PKG_CONFIG_PATH environment variable
No package 'hello' found
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
$ pkg-config --modversion hello
1.0.0</pre>
<p>A few <a href="http://www.gnu.org/software/autoconf/">autoconf</a> macros
are also provided to ease integration of <tt>pkg-config</tt> modules into
projects.</p>
<ul>
<li><b>PKG_PREREQ(MIN-VERSION)</b>: Ensures that the version of the
<tt>pkg-config</tt> <tt>autoconf</tt> macros in use is at least
<tt>MIN-VERSION</tt>.</li>
<li><b>PKG_PROG_PKG_CONFIG([MIN-VERSION])</b>: Locates the
<tt>pkg-config</tt> tool on the system and checks the version for
compatibility.</li>
<li><b>PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])</b>:
Checks to see whether a particular set of modules exists.</li>
<li><b>PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])</b>:
Checks to see whether a particular set of modules exists. If so, it sets
<tt>&lt;VARIABLE-PREFIX&gt;_CFLAGS</tt> and
<tt>&lt;VARIABLE-PREFIX&gt;_LIBS</tt> according to the output from
<tt>pkg-config --cflags</tt> and <tt>pkg-config --libs</tt>.</li>
</ul>
<!--<h2><a name="examples">Examples</a></h2>-->
<h2><a name="faq">Frequently asked questions</a></h2>
<ol>
<li>My program uses library <tt>x</tt>. What do I do?</li>
<p>The <tt>pkg-config</tt> output can easily be used on the compiler
command line. Assuming the <tt>x</tt> library has a <tt>x.pc</tt>
<tt>pkg-config</tt> file:</p>
<pre>cc `pkg-config --cflags --libs x` -o myapp myapp.c</pre>
<p>The integration can be more robust when used with
<a href="http://www.gnu.org/software/autoconf/">autoconf</a> and
<a href="http://www.gnu.org/software/automake/">automake</a>. By using the
supplied <tt>PKG_CHECK_MODULES</tt> macro, the metadata is easily accessed
in the build process.</p>
<pre>configure.ac:
PKG_CHECK_MODULES([X], [x])
Makefile.am:
myapp_CFLAGS = $(X_CFLAGS)
myapp_LDADD = $(X_LIBS)</pre>
<p>If the <tt>x</tt> module is found, the macro will fill and substitute
the <tt>X_CFLAGS</tt> and <tt>X_LIBS</tt> variables. If the module is not
found, an error will be produced. Optional 3rd and 4th arguments can be
supplied to <tt>PKG_CHECK_MODULES</tt> to control actions when the module
is found or not.</p>
<li>My library <tt>z</tt> installs header files which include <tt>libx</tt>
headers. What do I put in my <tt>z.pc</tt> file?</li>
<p>If the <tt>x</tt> library has <tt>pkg-config</tt> support, add it to
the <tt>Requires.private</tt> field. If it does not, augment the
<tt>Cflags</tt> field with the necessary compiler flags for using the
<tt>libx</tt> headers. In either case, <tt>pkg-config</tt> will output
the compiler flags when <tt>--static</tt> is used or not.</p>
<li>My library <tt>z</tt> uses <tt>libx</tt> internally, but does not
expose <tt>libx</tt> data types in its public API. What do I put in my
<tt>z.pc</tt> file?</li>
<p>Again, add the module to <tt>Requires.private</tt> if it supports
<tt>pkg-config</tt>. In this case, the compiler flags will be emitted
unnecessarily, but it ensures that the linker flags will be present when
linking statically. If <tt>libx</tt> does not support <tt>pkg-config</tt>,
add the necessary linker flags to <tt>Libs.private</tt>.</p>
</ol>
<hr/>
<address>Dan Nicholson &lt;dbn.lists (at) gmail (dot) com&gt;</address>
<p>Copyright (C) 2010 Dan Nicholson.<br/>
This document is licensed under the
<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt">GNU General Public License, Version 2</a>
or any later version.</p>
</body>
</html>

View File

@@ -0,0 +1,43 @@
With exception of certain parts that are prominently marked as being
in the Public Domain, BSD, or LGPL this Software is provided under the
Zope Public License (ZPL) Version 2.1.
Copyright (c) 2009 - 2013 by the mingw-w64 project
See the AUTHORS file for the list of contributors to the mingw-w64 project.
This license has been certified as open source. It has also been designated
as GPL compatible by the Free Software Foundation (FSF).
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions in source code must retain the accompanying copyright
notice, this list of conditions, and the following disclaimer.
2. Redistributions in binary form must reproduce the accompanying
copyright notice, this list of conditions, and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
3. Names of the copyright holders must not be used to endorse or promote
products derived from this software without prior written permission
from the copyright holders.
4. The right to distribute this software or to use it for any purpose does
not give you the right to use Servicemarks (sm) or Trademarks (tm) of
the copyright holders. Use of them is covered by separate agreement
with the copyright holders.
5. If any files are modified, you must cause the modified files to carry
prominent notices stating that you changed the files and the date of
any change.
Disclaimer
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -0,0 +1,57 @@
Copyright (c) 2011 mingw-w64 project
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, 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
AUTHORS OR 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.
/*
* Parts of this library are derived by:
*
* Posix Threads library for Microsoft Windows
*
* Use at own risk, there is no implied warranty to this code.
* It uses undocumented features of Microsoft Windows that can change
* at any time in the future.
*
* (C) 2010 Lockless Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of Lockless Inc. nor the names of its contributors may be
* used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/