[waffle] [PATCH 02/18] pkg/archlinux: add mingw-w64-waffle package

Jose Fonseca jfonseca at vmware.com
Thu Jul 31 15:05:13 PDT 2014


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.versace at linux.intel.com>
Sent: 31 July 2014 04:06
To: Emil Velikov; waffle at 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.velikov at 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 0000000..a2ebde5
> --- /dev/null
> +++ b/pkg/archlinux/mingw-w64-waffle/PKGBUILD
> @@ -0,0 +1,80 @@
> +# Maintainer: Chad Versace <chad.versace at 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%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=szKb4hF2Ik5O%2FxpnFqwbR6XKOzdStURP37Ybmzik3Ng%3D%0A&s=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 working C compiler: /usr/bin/i686-w64-mingw32-gcc -- broken
CMake Error at /usr/share/cmake-3.0/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "/usr/bin/i686-w64-mingw32-gcc" is not able to compile a
  simple test program.

  It fails with the following output:

   Change Dir: /home/chadv/proj/hh/default/src/waffle/build-i686-w64-mingw32/CMakeFiles/CMakeTmp



  Run Build Command:"/usr/bin/make" "cmTryCompileExec2618447734/fast"

  /usr/bin/make -f CMakeFiles/cmTryCompileExec2618447734.dir/build.make
  CMakeFiles/cmTryCompileExec2618447734.dir/build

  make[1]: Entering directory
  '/home/chadv/proj/hh/default/src/waffle/build-i686-w64-mingw32/CMakeFiles/CMakeTmp'


  /usr/bin/cmake -E cmake_progress_report
  /home/chadv/proj/hh/default/src/waffle/build-i686-w64-mingw32/CMakeFiles/CMakeTmp/CMakeFiles
  1

  Building C object
  CMakeFiles/cmTryCompileExec2618447734.dir/testCCompiler.c.obj

  /usr/bin/i686-w64-mingw32-gcc -g -fvar-tracking-assignments -o
  CMakeFiles/cmTryCompileExec2618447734.dir/testCCompiler.c.obj -c
  /home/chadv/proj/hh/default/src/waffle/build-i686-w64-mingw32/CMakeFiles/CMakeTmp/testCCompiler.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

  CMakeFiles/cmTryCompileExec2618447734.dir/build.make:57: recipe for target
  'CMakeFiles/cmTryCompileExec2618447734.dir/testCCompiler.c.obj' failed

  make[1]: Leaving directory
  '/home/chadv/proj/hh/default/src/waffle/build-i686-w64-mingw32/CMakeFiles/CMakeTmp'


  make[1]: ***
  [CMakeFiles/cmTryCompileExec2618447734.dir/testCCompiler.c.obj] Error 1

  Makefile:118: recipe for target 'cmTryCompileExec2618447734/fast' failed

  make: *** [cmTryCompileExec2618447734/fast] Error 2





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:26 (project)


-- Configuring incomplete, errors occurred!
See also "/home/chadv/proj/hh/default/src/waffle/build-i686-w64-mingw32/CMakeFiles/CMakeOutput.log".
See also "/home/chadv/proj/hh/default/src/waffle/build-i686-w64-mingw32/CMakeFiles/CMakeError.log".
==> ERROR: A failure occurred in build().
    Aborting...


More information about the waffle mailing list