No, I only peruse the excellent Archlinux's wiki sometimes, but I'm not
familiar with the actual distro, so I can't help.
Jose
From: Chad Versace chad.vers...@linux.intel.com
Sent: 31 July 2014 04:06
To: Emil Velikov; waffle@lists.freedesktop.org; Jose Fonseca
Subject: Re: [waffle] [PATCH 02/18] pkg/archlinux: add mingw-w64-waffle package
Emil, I can't get this PKGBUILD to build. What am I doing wrong?
I'm probably doing a lot wrong, because I've never used mingw before.
I installed all the dependencies listed in the PKGBUILD. Below
is a bash log that shows the build failures.
Jose, do you use Archlinux? Did you have any luck with this PKGBUILD?
On 07/22/2014 08:31 PM, Emil Velikov wrote:
- Remove explicit build options (waffle has autodetection).
- Correct the destination directories.
- Bump mingw64-crt requirement 3.1.0-3 (fixes the strerror_s issue).
- Build twice - once for cross-builds and second time for win32 usage.
TODO:
- Get CPack to amend the install prefix - fix the build twice issue.
- Strip some/all of the binaries ?
- Current package works of a local git repo. Rename to -git or
convert to a release one ?
Signed-off-by: Emil Velikov emil.l.veli...@gmail.com
---
pkg/archlinux/mingw-w64-waffle/PKGBUILD | 80
+
1 file changed, 80 insertions(+)
create mode 100644 pkg/archlinux/mingw-w64-waffle/PKGBUILD
diff --git a/pkg/archlinux/mingw-w64-waffle/PKGBUILD
b/pkg/archlinux/mingw-w64-waffle/PKGBUILD
new file mode 100644
index 000..a2ebde5
--- /dev/null
+++ b/pkg/archlinux/mingw-w64-waffle/PKGBUILD
@@ -0,0 +1,80 @@
+# Maintainer: Chad Versace chad.vers...@linux.intel.com
+
+pkgname='mingw-w64-waffle'
+pkgver='1.3.0'
+pkgrel=1
+pkgdesc='a library for choosing window system and OpenGL API at runtime
(mingw-w64)'
+arch=('any')
+url='https://urldefense.proofpoint.com/v1/url?u=http://waffle-gl.github.io/k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0Ar=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0Am=szKb4hF2Ik5O%2FxpnFqwbR6XKOzdStURP37Ybmzik3Ng%3D%0As=a4d4d029b55bb3233c81f3316508d61c0ae85f648aa22b842aeeb07b0a6c580f'
+license=('BSD')
+
+depends=(
+ 'mingw-w64-crt=3.1.0-3'
+ )
+makedepends=(
+ 'mingw-w64-cmake'
+
+ # For building the docs.
+# XXX: Add as soon as we enable docs/manpages
+# 'libxslt'
+# 'docbook-xsl'
+
+ )
+
+options=('!strip' '!buildflags' 'staticlibs')
+_architectures=i686-w64-mingw32 x86_64-w64-mingw32
+
+srcroot=${HOME}/development/waffle
+build() {
+ unset LDFLAGS
+ cd ${srcroot}
+ msg Building mingw-w64-waffle for cross-building
+ for _arch in ${_architectures}; do
+mkdir -p build-${_arch} pushd build-${_arch}
+${_arch}-cmake .. \
+ -DCMAKE_INSTALL_PREFIX=/usr/${_arch} \
+ -DCMAKE_INSTALL_LIBDIR=/usr/${_arch}/lib \
+ -DCMAKE_BUILD_TYPE=Release \
+ \
+ -Dwaffle_build_tests=0 \
+ -Dwaffle_build_manpages=0 \
+ -Dwaffle_build_htmldocs=0 \
+ -Dwaffle_build_examples=1
+make
+popd
+ done
+
+ # There should be a better way to do this
+ msg Building mingw-w64-waffle for native builds
+ for _arch in ${_architectures}; do
+mkdir -p build-${_arch}-win pushd build-${_arch}-win
+${_arch}-cmake .. \
+ -DCMAKE_INSTALL_PREFIX= \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_BUILD_TYPE=Release \
+ \
+ -Dwaffle_build_tests=0 \
+ -Dwaffle_build_manpages=0 \
+ -Dwaffle_build_htmldocs=0 \
+ -Dwaffle_build_examples=1
+make
+popd
+ done
+}
+
+package() {
+ for _arch in ${_architectures}; do
+cd ${srcroot}/build-${_arch}
+make DESTDIR=${pkgdir} install
+#${_arch}-strip --strip-unneeded $pkgdir/usr/${_arch}/bin/*.dll
+#${_arch}-strip -g $pkgdir/usr/${_arch}/lib/*.a
+ done
+
+ for _arch in ${_architectures}; do
+cd ${srcroot}/build-${_arch}-win
+# Create Windows zip archives
+make package
+ done
+}
+
+# vim:set ts=2 sw=2 et:
Chad's build errors
$ git checkout evelikov/for-upstream-WGL
$ git log -1 --format=%H
ed2164dfb4ae6d957ef853c054357202ba60f883
$ cd pkg/archlinux/mingw-w64-waffle
$
$ # Do a mingw sanity test. It fails :(
$ cat sanity.c
int
main() {
return 0;
}
$ /usr/bin/i686-w64-mingw32-gcc sanity.c
$ /usr/lib/gcc/i686-w64-mingw32/4.9.1/cc1: error while loading shared
libraries: libisl.so.13: cannot open shared object file: No such file or
directory
$
$ # Now build Emil's PKGBUILD
$ makepkg
== Making package: mingw-w64-waffle 1.3.0-1 (Wed Jul 30 19:57:04 PDT 2014)
== Checking runtime dependencies...
== Checking buildtime dependencies...
== Retrieving sources...
== Extracting sources...
== Starting build()...
== Building mingw-w64-waffle for cross-building
~/proj/hh/default/src/waffle/build-i686-w64-mingw32 ~/proj/hh/default/src/waffle
-- The C compiler identification is unknown
-- Check for working C compiler: /usr/bin/i686-w64-mingw32-gcc
-- Check for