Changeset 4309424
- Timestamp:
- Mar 17, 2017, 9:39:56 AM (8 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master, sampler
- Children:
- 4f64069
- Parents:
- 1f170a8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
scripts/build_mingw
r1f170a8 r4309424 1 1 #! /bin/bash 2 2 3 # This script cross compiles aubio for windows using mingw, both for 32 and 64 4 # bits. Built binaries will be placed in ./dist-win32 and ./dist-win64. 5 3 # This script cross compiles aubio for windows using mingw, four times: 4 # 5 # - 32 and 64 bits with no external dependencies 6 # - 32 and 64 bits against ffmpeg 7 # 6 8 # On debian or ubuntu, you will want to 'apt-get install gcc-mingw-w64' 7 9 … … 9 11 set -x 10 12 11 WAFOPTS="-v --disable-avcodec --disable-samplerate --disable-jack --disable-sndfile" 13 source VERSION 14 VERSION="$AUBIO_MAJOR_VERSION.$AUBIO_MINOR_VERSION.$AUBIO_PATCH_VERSION" 15 VERSION+="$AUBIO_VERSION_STATUS" 12 16 13 [ -d dist-win32 ] && rm -rf dist-win32 14 [ -d dist-win64 ] && rm -rf dist-win64 17 FFMPEG_BUILDS_URL="https://ffmpeg.zeranoe.com/builds" 18 FFMPEG_DEFAULT="20170315-6c4665d" 15 19 16 CFLAGS="-Os" \ 17 LDFLAGS="" \ 18 CC=x86_64-w64-mingw32-gcc \ 19 ./waf distclean configure build install --destdir=$PWD/dist-win64 \ 20 --testcmd="echo %s" \ 21 $WAFOPTS --with-target-platform=win64 20 # define some default CFLAGS 21 DEF_CFLAGS="-Os -I/usr/share/mingw-w64" 22 DEF_LDFLAGS="" 22 23 23 CFLAGS="-Os" \ 24 LDFLAGS="" \ 25 CC=i686-w64-mingw32-gcc \ 26 ./waf distclean configure build install --destdir=$PWD/dist-win32 \ 27 --testcmd="echo %s" \ 28 $WAFOPTS --with-target-platform=win32 24 WAFOPTS="" 25 # disable external deps to make sure we don't try to use the host package 26 WAFOPTS+=" --disable-samplerate --disable-jack --disable-sndfile" 27 # enable ffmpeg build 28 WAFOPTS+=" --disable-avcodec" 29 # install without a prefix 30 WAFOPTS+=" --prefix=/" 31 # compile the tests, but fake running them 32 # passing this option WAFOPTS fails (escaping?), added in actual waf call below 33 #WAFOPTS+=" --testcmd='echo %s'" 34 35 # debugging 36 #WAFOPTS+=" -v" 37 #WAFOPTS+=" -j1" 38 #WAFOPTS+=" --notests" 39 40 function fetch_ffpmeg() { 41 ## manually add ffmpeg (no pkg-config .pc files in bins) 42 [ -n "$FFMPEG_VERSION" ] || FFMPEG_VERSION=$FFMPEG_DEFAULT 43 FFMPEG_TARBALL="$PWD/ffmpeg-$FFMPEG_VERSION-$TARGET-dev.zip" 44 FFMPEG_BINARIES="${FFMPEG_TARBALL%%.zip}" 45 if [ ! -d "$FFMPEG_BINARIES" ] 46 then 47 if [ ! -f "$FFMPEG_TARBALL" ] 48 then 49 curl -O $FFMPEG_BUILDS_URL/$TARGET/dev/ffmpeg-$FFMPEG_VERSION-$TARGET-dev.zip 50 else 51 echo "using $FFMPEG_TARBALL" 52 fi 53 unzip -x $FFMPEG_TARBALL 54 else 55 echo "using $FFMPEG_BINARIES" 56 fi 57 } 58 59 function get_cflags() { 60 CFLAGS="$DEF_CFLAGS" 61 LDFLAGS="$DEF_LDFLAGS" 62 if [ -n "$WITH_FFMEG" ] 63 then 64 fetch_ffpmeg 65 CFLAGS+=" -DHAVE_LIBAV=1 -DHAVE_SWRESAMPLE=1" 66 CFLAGS+=" -I$FFMPEG_BINARIES/include" 67 LDFLAGS+=" -lavcodec -lavformat -lavutil -lswresample" 68 LDFLAGS+=" -L$FFMPEG_BINARIES/lib" 69 fi 70 } 71 72 function build_mingw() { 73 DESTDIR="$PWD/aubio-$VERSION-$TARGET" 74 [ -n "$WITH_FFMEG" ] && DESTDIR+="-ffmpeg" 75 [ -d $DESTDIR ] && rm -rf $DESTDIR $DESTDIR.zip 76 WAFOPTS_TGT="$WAFOPTS --destdir=$DESTDIR" 77 WAFOPTS_TGT+=" --with-target-platform=$TARGET" 78 get_cflags 79 CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" \ 80 ./waf distclean configure build install $WAFOPTS_TGT --testcmd='echo %s' 81 zip -r $DESTDIR.zip `basename $DESTDIR` 82 rm -rf $DESTDIR 83 sha256sum $DESTDIR.zip > $DESTDIR.zip.sha256 84 } 85 86 function build_mingw32() { 87 TARGET=win32 88 export CC=i686-w64-mingw32-gcc 89 build_mingw 90 } 91 92 function build_mingw64() { 93 TARGET=win64 94 export CC=x86_64-w64-mingw32-gcc 95 build_mingw 96 } 97 98 # fetch waf if needed 99 [ -f "waf" ] || make getwaf 100 101 # first build without ffmpeg 102 build_mingw32 103 build_mingw64 104 105 # then build against ffmpeg 106 WITH_FFMEG=1 107 build_mingw32 108 build_mingw64
Note: See TracChangeset
for help on using the changeset viewer.