123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251 |
- #!/bin/bash
- #
- # SynfigStudio Windows package build script
- # Copyright (c) 2013 Konstantin Dmitriev
- #
- # This package 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 package 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.
- #
- #
- # = Usage notes =
- #
- # * Download and install Git (http://msysgit.github.io/).
- # * Open Git Bash and execute following commands:
- # ** mkdir C:\synfig-build
- # ** cd C:\synfig-build
- # ** git clone https://github.com/synfig/synfig.git
- # ** mkdir cygwin-dist
- # ** cd synfig
- # ** git config --global core.autocrlf input
- # ** exit
- # * Download Cygwin setup binary (http://www.cygwin.com/) and save it into C:\synfig-build\cygwin-dist\ directory.
- # * Run Cygwin setup and install with the default parameters.
- # * Download and install NSIS >=3.0 (http://nsis.sourceforge.net/). Install into C:\synfig-build\NSIS\ directory.
- # * (64-bit build only!) Download and install 7zip (http://downloads.sourceforge.net/sevenzip/7z920-x64.msi). Install into C:\synfig-build\7zip\ directory.
- # * Open Cygwin console (with administrator previlegies) and run the build script:
- # ** bash C:/synfig-build/synfig/autobuild/synfigstudio-cygwin-mingw-build.sh
- # * Installation bundle will be written to C:\synfig-build\
- #
- #
- # = Other notes =
- # * Builds from current repository, current revision. So you should manually checkout the desired revision to build
- # * Executing script without arguments makes a full clean build and produces installer package
- # * You can pass arguments to the script to invoke particular stage.
- # Available stages: mkprep, mketl, mksynfig, mksynfigstudio, mkpackage
- # Example:
- # synfigstudio-cygwin-mingw-build.sh mkpackage
- # * You can pass a custom command to be invoked in the build environment.
- # Example (executes make with respect to the build environment):
- # synfigstudio-cygwin-mingw-build.sh make -j2
- #================= EDIT THOSE VARIABLES BEFORE FIRST RUN! ======================
- export NSIS_BINARY="C:/synfig-build/NSIS/makensis.exe"
- export WORKSPACE="/cygdrive/c/synfig-build"
- if [ -z $ARCH ]; then
- export ARCH="32"
- fi
- if [ -z $DEBUG ]; then
- export DEBUG=1
- fi
- if [ -z $THREADS ]; then
- export THREADS=4
- fi
- #=========================== EDIT UNTIL HERE ===================================
- export DISTPREFIX=$WORKSPACE/dist
- export SRCPREFIX=`dirname "$0"`
- SRCPREFIX=$(cd "$SRCPREFIX/.."; pwd)
- if [[ $ARCH == "32" ]]; then
- export TOOLCHAIN_HOST="i686-w64-mingw32"
- export TOOLCHAIN="mingw64-i686" # mingw64-i686 | mingw64-x86_64 | mingw
- export EXT_ARCH=i386
- export EXT_ARCH2=i686
- export CYGWIN_SETUP="C:/synfig-build/cygwin-dist/setup-x86.exe"
- export SZIP_BINARY="7z"
- elif [[ $ARCH == "64" ]]; then
- export TOOLCHAIN_HOST="x86_64-w64-mingw32"
- export TOOLCHAIN="mingw64-x86_64"
- export EXT_ARCH=x86_64
- export EXT_ARCH2=x86_64
- export CYGWIN_SETUP="C:/synfig-build/cygwin64-dist/setup-x86_64.exe"
- export SZIP_BINARY="C:/synfig-build/7zip/7z.exe"
- fi
- export MINGWPREFIX="/usr/${TOOLCHAIN_HOST}/sys-root/mingw"
- set -e
- if [[ $DEBUG == 1 ]]; then
- DEBUG='--enable-debug --enable-optimization=0'
- else
- DEBUG=''
- fi
- export VERSION=`cat ${SRCPREFIX}/synfig-core/configure.ac |egrep "AC_INIT\(\[Synfig Core\],"| sed "s|.*Core\],\[||" | sed "s|\],\[.*||"`
- pushd "${SRCPREFIX}" > /dev/null
- export REVISION=`git show --pretty=format:%ci HEAD | head -c 10 | tr -d '-'`
- popd > /dev/null
- if [ ! -e "$SZIP_BINARY" ]; then
- if [[ $ARCH == "64" ]]; then
- echo "7zip not found! Please download and install 7zip (http://downloads.sourceforge.net/sevenzip/7z920-x64.msi). Install into C:\synfig-build\7zip\ directory."
- exit 1
- fi
- fi
- if [ ! -e "$NSIS_BINARY" ]; then
- echo "NSIS not found! Please download and install NSIS >=3.0 (http://nsis.sourceforge.net/). Install into C:\synfig-build\NSIS\ directory."
- exit 1
- fi
- chmod a+x ${MINGWPREFIX}/bin/*.dll || true
- prepare_mingw_env()
- {
- export CBUILD=i686-pc-cygwin
- export CHOST=${TOOLCHAIN_HOST}
- export CTARGET=${TOOLCHAIN_HOST}
- export CC=${TOOLCHAIN_HOST}-gcc
- export CXX=${TOOLCHAIN_HOST}-g++
- export F77=${TOOLCHAIN_HOST}-gfortran
- export FC=${TOOLCHAIN_HOST}-gfortran
- export GCJ=${TOOLCHAIN_HOST}-gcj
- export GOC=${TOOLCHAIN_HOST}-gccgo
- export OBJC=${TOOLCHAIN_HOST}-gcc
- export OBJCXX=${TOOLCHAIN_HOST}-g++
- export AR=${TOOLCHAIN_HOST}-ar
- export OBJDUMP=${TOOLCHAIN_HOST}-objdump
- export RANLIB=${TOOLCHAIN_HOST}-ranlib
- export STRIP=${TOOLCHAIN_HOST}-strip
- export RC=${TOOLCHAIN_HOST}-windres
- export CFLAGS=' -O2 -pipe -mms-bitfields'
- export CXXFLAGS=" -O2 -pipe -mms-bitfields"
- #export CXXFLAGS=" -O2 -pipe -mms-bitfields -I${MINGWPREFIX}/include/c++ -I${MINGWPREFIX}/include/c++/${TOOLCHAIN_HOST}"
- export F77FLAGS=' -mms-bitfields'
- export FCFLAGS=' -O2 -pipe -mms-bitfields'
- export GCJFLAGS=' -O2 -pipe -mms-bitfields'
- export GOCFLAGS=' -mms-bitfields'
- export OBJCFLAGS=' -O2 -pipe -mms-bitfields'
- export OBJCXXFLAGS=' -O2 -pipe -mms-bitfields'
- export PKG_CONFIG=/usr/bin/pkg-config
- export PKG_CONFIG_PATH="${MINGWPREFIX}/lib/pkgconfig"
- export PKG_CONFIG_LIBDIR="${MINGWPREFIX}/lib/pkgconfig:${MINGWPREFIX}/share/pkgconfig:/usr/share/pkgconfig"
- export PKG_CONFIG_SYSTEM_INCLUDE_PATH=${MINGWPREFIX}/include
- export PKG_CONFIG_SYSTEM_LIBRARY_PATH=${MINGWPREFIX}/lib
- export CPPFLAGS=" -I${MINGWPREFIX}/include "
- export LDFLAGS=" -L${MINGWPREFIX}/lib "
- export LIBS=""
- export PATH="${MINGWPREFIX}/bin/:$PATH"
- alias convert="${MINGWPREFIX}/bin/convert"
- }
- mknative()
- {
- export CBUILD=""
- export CHOST=""
- export CTARGET=""
- export CC="gcc"
- export CXX="g++"
- export F77=""
- export FC=""
- export GCJ=""
- export GOC=""
- export OBJC=""
- export OBJCXX=""
- export AR=""
- export OBJDUMP=""
- export RANLIB=""
- export STRIP=""
- export RC=""
- export CFLAGS=""
- export CXXFLAGS=""
- export F77FLAGS=""
- export FCFLAGS=""
- export GCJFLAGS=""
- export GOCFLAGS=""
- export OBJCFLAGS=""
- export OBJCXXFLAGS=""
- export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
- export PKG_CONFIG_LIBDIR=""
- export PKG_CONFIG_SYSTEM_INCLUDE_PATH=""
- export PKG_CONFIG_SYSTEM_LIBRARY_PATH=""
- export CPPFLAGS=""
- export LDFLAGS=""
- export PATH="/usr/local/bin:/usr/bin"
- $@
- }
- mkpopt()
- {
- PKG_NAME=popt
- PKG_VERSION=1.10.3
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.gz ] || wget http://rpm5.org/files/popt/${PKG_NAME}-${PKG_VERSION}.tar.gz
- [ -d ${PKG_NAME}-${PKG_VERSION} ] || tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.gz
- cd ${PKG_NAME}-${PKG_VERSION}
- ./autogen.sh --noconfigure
- ./configure --prefix=/usr/local --libdir=/usr/local/lib
- make -j$THREADS install
- if [[ $ARCH == "64" ]]; then
- mv /usr/local/lib64/* /usr/local/lib
- fi
- # remove old version of popt
- [ ! -e /usr/bin/cygpopt-0.dll ] || rm /usr/bin/cygpopt-0.dll
- }
- mkrpm()
- {
- PKG_NAME=rpm
- #PKG_VERSION=4.11.1
- PKG_VERSION=4.10.3.1
- #PKG_VERSION=4.7.0
- TAREXT=bz2
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://rpm.org/releases/rpm-4.10.x/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xjf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- patch -p1 < $SRCPREFIX/autobuild/cygwin/${PKG_NAME}-${PKG_VERSION}.patch
- patch -p1 < $SRCPREFIX/autobuild/cygwin/${PKG_NAME}-${PKG_VERSION}-python-fixes.patch
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- LDFLAGS=" -L/usr/local/lib" CPPFLAGS="-I/usr/include/nspr -I/usr/include/nss -I/usr/include/db4.8/ -I/usr/include/python2.7/" ./autogen.sh \
- --with-external-db \
- --without-lua \
- --enable-python
- make -j$THREADS install
- cd python
- export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH"
- export LDFLAGS=" -L/usr/local/lib"
- python setup.py build
- python setup.py install
- }
- mkpyliblzma()
- {
- PKG_NAME=pyliblzma
- PKG_VERSION=0.5.3
- TAREXT=bz2
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget https://pypi.python.org/packages/source/p/pyliblzma/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- export PKG_CONFIG_PATH="/usr/lib/pkgconfig:/usr/local/lib/pkgconfig"
- python setup.py build
- python setup.py install
- }
- mkpycurl()
- {
- PKG_NAME=pycurl
- PKG_VERSION=7.19.0
- TAREXT=gz
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://pycurl.sourceforge.net/download/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- python setup.py build
- python setup.py install
- }
- mkurlgrabber()
- {
- PKG_NAME=urlgrabber
- PKG_VERSION=3.9.1
- TAREXT=gz
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://urlgrabber.baseurl.org/download/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- python setup.py build
- python setup.py install
- }
- mkyum-metadata-parser()
- {
- PKG_NAME=yum-metadata-parser
- PKG_VERSION=1.1.4
- TAREXT=gz
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://yum.baseurl.org/download/yum-metadata-parser/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- python setup.py build
- python setup.py install
- }
- mkyum()
- {
- PKG_NAME=yum
- PKG_VERSION=3.4.3
- TAREXT=gz
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://yum.baseurl.org/download/3.4/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- rm INSTALL || true
- make install PREFIX="//" DESTDIR=""
- }
- mkyum-utils()
- {
- PKG_NAME=yum-utils
- PKG_VERSION=1.1.31
- TAREXT=gz
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://yum.baseurl.org/download/yum-utils/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- make install || true
- if [ ! -e /usr/bin/yumdownloader ]; then
- exit 1
- fi
- }
- mklibcroco()
- {
- PKG_NAME=libcroco
- PKG_VERSION=0.6.8
- TAREXT=xz
- if ! pkg-config ${PKG_NAME}-0.6 --exact-version=${PKG_VERSION} --print-errors; then
- cd ${WORKSPACE}
- wget -c --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/${PKG_NAME}/${PKG_VERSION%.*}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- [ ! -d ${PKG_NAME}-${PKG_VERSION} ] && tar -xf ${WORKSPACE}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --disable-static --enable-shared
- make -j${THREADS}
- make install
- fi
- }
- mkgobjectintrospection()
- {
- #mkflex
- PKG_NAME=gobject-introspection
- PKG_VERSION=1.42.0
- TAREXT=xz
- if ! pkg-config ${PKG_NAME}-1.0 --exact-version=${PKG_VERSION} --print-errors; then
- cd ${WORKSPACE}
- wget -c --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/${PKG_NAME}/${PKG_VERSION%.*}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- [ ! -d ${PKG_NAME}-${PKG_VERSION} ] && tar -xf ${WORKSPACE}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- CPPFLAGS="$CPPFLAGS -I/usr/include" ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --disable-static --enable-shared
- make -j${THREADS}
- make install
- fi
- }
- mklibrsvg()
- {
-
- mklibcroco
- mkgobjectintrospection
-
- PKG_NAME=librsvg
- PKG_VERSION=2.40.6
- TAREXT=xz
- if ! pkg-config ${PKG_NAME} --exact-version=${PKG_VERSION} --print-errors; then
- cd ${WORKSPACE}
- wget -c --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/${PKG_NAME}/${PKG_VERSION%.*}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- [ ! -d ${PKG_NAME}-${PKG_VERSION} ] && tar -xf ${WORKSPACE}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --disable-static --enable-shared
- make -j${THREADS}
- make install
- cd ..
- popd
- fi
- }
- mkgnomethemes()
- {
-
- mklibrsvg
- PKG_NAME=gnome-themes-standard
- PKG_VERSION=3.15.2
- TAREXT=xz
- if ! pkg-config ${PKG_NAME} --exact-version=${PKG_VERSION} --print-errors; then
- cd ${WORKSPACE}
- wget -c --no-check-certificate http://ftp.gnome.org/pub/gnome/sources/${PKG_NAME}/${PKG_VERSION%.*}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- [ ! -d ${PKG_NAME}-${PKG_VERSION} ] && tar -xf ${WORKSPACE}/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --disable-static --enable-shared \
- --disable-gtk2-engine
- make -j${THREADS}
- make install
- cd ..
- popd
- fi
- }
- mkimagemagick()
- {
- PKG_NAME=ImageMagick
- #PKG_VERSION=6.8.6-10
- PKG_VERSION=6.8.7-10
- TAREXT=xz
- if ! pkg-config ${PKG_NAME} --exact-version=${PKG_VERSION%-*} --print-errors; then
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://www.imagemagick.org/download/releases/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- cd ${PKG_NAME}-${PKG_VERSION}
- else
- cd ${PKG_NAME}-${PKG_VERSION}
- fi
- [ ! -e config.cache ] || rm config.cache
- autoreconf -i --verbose # does this really required?
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --disable-static --enable-shared \
- --without-modules \
- --without-perl \
- --without-x \
- --with-threads \
- --with-magick_plus_plus
- make -j${THREADS}
- make install
- fi
- }
- mklibogg()
- {
- PKG_NAME=libogg
- PKG_VERSION=1.3.1
- TAREXT=gz
- if ! pkg-config ogg --exact-version=${PKG_VERSION} --print-errors; then
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://downloads.xiph.org/releases/ogg/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- fi
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST}
- make all
- make install
- fi
- }
- mklibvorbis()
- {
- mklibogg
- PKG_NAME=libvorbis
- PKG_VERSION=1.3.4
- TAREXT=gz
- if ! pkg-config vorbis --exact-version=${PKG_VERSION} --print-errors; then
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://downloads.xiph.org/releases/vorbis/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- fi
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST}
- make all
- make install
- fi
- }
- mklibsamplerate()
- {
- PKG_NAME=libsamplerate
- PKG_VERSION=0.1.8
- TAREXT=gz
- if ! pkg-config samplerate --exact-version=${PKG_VERSION} --print-errors; then
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://www.mega-nerd.com/SRC/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- fi
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST}
- make all
- make install
- fi
- }
- mksox()
- {
- PKG_NAME=sox
- PKG_VERSION=14.4.1
- TAREXT=gz
- if ! pkg-config ${PKG_NAME} --exact-version=${PKG_VERSION} --print-errors; then
- cd $WORKSPACE
- [ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://download.tuxfamily.org/synfig/packages/sources/base/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- fi
- cd ${PKG_NAME}-${PKG_VERSION}
- [ ! -e config.cache ] || rm config.cache
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST}
- make all
- make install
- fi
- }
- mkmlt()
- {
- PKG_NAME=mlt
- PKG_VERSION=0.9.6
- TAREXT=gz
- if ! pkg-config ${PKG_NAME}\+\+ --exact-version=${PKG_VERSION} --print-errors; then
- cd $WORKSPACE
- #[ -e ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT} ] || wget http://download.tuxfamily.org/synfig/packages/sources/base/${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- #if [ ! -d ${PKG_NAME}-${PKG_VERSION} ]; then
- # tar -xzf ${PKG_NAME}-${PKG_VERSION}.tar.${TAREXT}
- #fi
- #cd ${PKG_NAME}-${PKG_VERSION}
- if [ ! -d ${PKG_NAME} ]; then
- git clone https://github.com/morevnaproject/mlt
- fi
- cd mlt
- git reset --hard
- git checkout master
- git reset --hard
- git pull
- git clean -f -d
- [ ! -e config.cache ] || rm config.cache
- #autoreconf -i --verbose # does this really required?
- rm -rf ${MINGWPREFIX}/lib/libmlt* || true
- rm -rf ${MINGWPREFIX}/bin/libmlt* || true
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --avformat-shared=${MINGWPREFIX}/ \
- --enable-gpl --disable-decklink \
- --target-os=MinGW --target-arch=$EXT_ARCH \
- #$DEBUG
-
- if [ $ARCH == "64" ]; then
- touch src/modules/disable-motion_est
- touch src/modules/disable-xine
- fi
- touch src/modules/disable-gtk2
- make all
- make install
- mv ${MINGWPREFIX}/melt.exe ${MINGWPREFIX}/bin
- mv ${MINGWPREFIX}/libmlt*.dll ${MINGWPREFIX}/bin
- mkdir -p ${MINGWPREFIX}/bin/lib || true
- mkdir -p ${MINGWPREFIX}/bin/share || true
- cp -rf ${MINGWPREFIX}/lib/mlt ${MINGWPREFIX}/bin/lib/
- cp -rf ${MINGWPREFIX}/share/mlt ${MINGWPREFIX}/bin/share/
- fi
- }
- #mktoolchain()
- #{
- # cd ${WORKSPACE}
- # if [ ! -e mingw${ARCH}/done ]; then
- # [ ! -e ${WORKSPACE}/mingw32 ] || rm -rf ${WORKSPACE}/mingw32
- # TOOLCHAIN_ARCHIVE=${EXT_ARCH2}-4.9.2-release-posix-sjlj-rt_v3-rev1.7z
- # [ -e ${TOOLCHAIN_ARCHIVE} ] || wget http://downloads.sourceforge.net/project/mingw-w64/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/4.9.2/threads-posix/sjlj/${TOOLCHAIN_ARCHIVE}
- # $SZIP_BINARY x ${TOOLCHAIN_ARCHIVE}
- # mkdir -p ${MINGWPREFIX} | true
- # mv mingw32/${TOOLCHAIN_HOST}/* ${MINGWPREFIX}
- # cp ${MINGWPREFIX}/lib/*.dll ${MINGWPREFIX}/bin
- # touch mingw${ARCH}/done
- # fi
- #}
- mkffmpeg()
- {
- export FFMPEG_VERSION=2.5.2
- if ! pkg-config libswscale --exact-version=${FFMPEG_VERSION} --print-errors; then
- pushd $WORKSPACE
- [ -e ffmpeg-${FFMPEG_VERSION}-win${ARCH}-dev.7z ] || wget http://ffmpeg.zeranoe.com/builds/win${ARCH}/dev/ffmpeg-${FFMPEG_VERSION}-win${ARCH}-dev.7z
- [ -e ffmpeg-${FFMPEG_VERSION}-win${ARCH}-shared.7z ] || wget http://ffmpeg.zeranoe.com/builds/win${ARCH}/shared/ffmpeg-${FFMPEG_VERSION}-win${ARCH}-shared.7z
- [ ! -d ffmpeg ] || rm -rf ffmpeg
- mkdir -p ffmpeg
- cd ffmpeg
- $SZIP_BINARY x ../ffmpeg-${FFMPEG_VERSION}-win${ARCH}-dev.7z
- cp -rf ffmpeg-${FFMPEG_VERSION}-win${ARCH}-dev/include/* ${MINGWPREFIX}/include/
- cp -rf ffmpeg-${FFMPEG_VERSION}-win${ARCH}-dev/lib/* ${MINGWPREFIX}/lib/
- $SZIP_BINARY x ../ffmpeg-${FFMPEG_VERSION}-win${ARCH}-shared.7z
- cp -rf ffmpeg-${FFMPEG_VERSION}-win${ARCH}-shared/bin/ffmpeg.exe ${MINGWPREFIX}/bin
- cp -rf ffmpeg-${FFMPEG_VERSION}-win${ARCH}-shared/bin/*.dll ${MINGWPREFIX}/bin
- mkdir -p ${MINGWPREFIX}/share/ffmpeg/presets/ || true
- cp -rf ffmpeg-${FFMPEG_VERSION}-win${ARCH}-shared/presets/* ${MINGWPREFIX}/share/ffmpeg/presets/
- mkdir -p ${MINGWPREFIX}/lib/pkgconfig/ || true
- for PKG in avcodec avutil avformat swscale avdevice; do
- cat > ${MINGWPREFIX}/lib/pkgconfig/lib${PKG}.pc <<EOF
- prefix=${MINGWPREFIX}
- exec_prefix=${MINGWPREFIX}
- libdir=${MINGWPREFIX}/lib
- includedir=${MINGWPREFIX}/include
- Name: lib${PKG}
- Description: FFMpeg
- Version: ${FFMPEG_VERSION}
- Libs: -l${PKG}
- EOF
- done
- popd
- fi
- }
- fedora-mingw-install()
- {
- [ -d $WORKSPACE/mingw-rpms ] || mkdir $WORKSPACE/mingw-rpms
- cd $WORKSPACE/mingw-rpms
- # Prepare custom yum.conf
- cat > $WORKSPACE/mingw-rpms/yum.conf <<EOF
- [main]
- cachedir=${WORKSPACE}mingw-rpms/yum
- keepcache=0
- debuglevel=2
- logfile=/var/log/yum.log
- exactarch=1
- obsoletes=1
- plugins=1
- installonly_limit=3
- [fedora]
- name=Fedora \$releasever - \$basearch
- failovermethod=priority
- #mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-\$releasever&arch=\$basearch
- baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/21/Everything/i386/os/
- #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/21/Everything/i386/os/
- enabled=1
- metadata_expire=7d
- [updates]
- name=Fedora \$releasever - \$basearch - Updates
- failovermethod=priority
- #mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-f\$releasever&arch=\$basearch
- baseurl=http://archives.fedoraproject.org/pub/archive/fedora/linux/updates/21/i386/
- #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/21/i386/
- enabled=1
- EOF
- if [ -z $2 ]; then
- RPMROOT=/
- else
- RPMROOT=$2
- fi
- URLS=`yumdownloader --urls --resolve -c $WORKSPACE/mingw-rpms/yum.conf --releasever=20 --installroot="$WORKSPACE/mingw-rpms" $1`
- for URL in $URLS; do
- if ( echo "$URL" | egrep "^http:" > /dev/null ); then
- PKG=`basename $URL`
- if ( echo "$PKG" | egrep "^mingw" > /dev/null ); then
- if [ -z $3 ]; then
- if ! ( echo $PKG | egrep "^mingw..-headers|^mingw..-gcc|^mingw-|^mingw..-filesystem|^mingw..-binutils|^mingw..-crt|^mingw..-cpp" > /dev/null); then
- echo $PKG
- wget -c "$URL"
- rpm -Uhv --ignoreos --nodeps --force --root "$RPMROOT" "$PKG"
- fi
- else
- if ( echo $PKG | egrep "$1" > /dev/null); then
- echo $PKG
- wget -c "$URL"
- rpm -Uhv --ignoreos --nodeps --force --root "$RPMROOT" "$PKG"
- fi
- fi
- fi
- fi
- done
- # Ensure all dlls have executable flag, otherwise the compiled binaries won't run
- chmod a+x ${MINGWPREFIX}/bin/*.dll
- }
- # Install dependencies
- mkprep()
- {
- export PREP_VERSION=6
- if [[ `cat /prep-done` != "${PREP_VERSION}" ]]; then
- $CYGWIN_SETUP \
- -s http://www.mirrorservice.org/sites/sourceware.org/pub/cygwin/ \
- -P git \
- -P make \
- -P gcc-core \
- -P gcc-g++ \
- -P $TOOLCHAIN-gcc \
- -P $TOOLCHAIN-gcc-g++ \
- -P gdb \
- -P intltool \
- -P autoconf \
- -P automake \
- -P libtool \
- -P pkg-config \
- -P p7zip \
- -P ImageMagick \
- -P cygport \
- -P zlib-devel \
- -P libnspr-devel \
- -P liblzma-devel \
- -P libnss-devel \
- -P libiconv \
- -P libdb4.8-devel \
- -P libpcre-devel \
- -P python \
- -P file-devel \
- -P zlib-devel \
- -P libdb-devel \
- -P flex \
- -P bison \
- -P python-setuptools \
- -q
- # yum dependencies
- $CYGWIN_SETUP \
- -s http://www.mirrorservice.org/sites/sourceware.org/pub/cygwin/ \
- -P urlgrabber \
- -P rpm-devel \
- -P rpm-python \
- -P libglib2.0-devel \
- -P libxml2-devel \
- -P libsqlite3-devel \
- -q
- #-P libglib2.0-devel \ # yum req
- #-P libsqlite3-devel \ # yum req
- #-P libxml2-devel \ # yum req
- #-P libcurl-devel \ # pycurl req
- #mktoolchain
- #echo "Building popt..."
- #mknative mkpopt
- echo "Building pyliblzma..."
- mknative mkpyliblzma
- #echo "Building rpm..."
- #mknative mkrpm
- #mknative mkurlgrabber
- echo "Building yum-metadata-parser..."
- mknative mkyum-metadata-parser
- #mknative mkyum
- #mknative mkyum-utils
- install_fedora_env
- echo ${PREP_VERSION} > /prep-done
- fi
- }
- install_fedora_env()
- {
- cd $WORKSPACE
- wget -c http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Everything/i386/os/Packages/y/yum-3.4.3-106.fc20.noarch.rpm
- rpm -Uhv --force --ignoreos --nodeps yum-3.4.3-106.fc20.noarch.rpm
- wget -c http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/20/Everything/i386/os/Packages/y/yum-utils-1.1.31-18.fc20.noarch.rpm
- rpm -Uhv --force --ignoreos --nodeps yum-utils-1.1.31-18.fc20.noarch.rpm
- #wget -c http://fedora.inode.at/fedora/linux/releases/21/Everything/i386/os/Packages/y/yum-3.4.3-153.fc21.noarch.rpm
- #rpm -Uhv --force --ignoreos --nodeps yum-3.4.3-153.fc21.noarch.rpm
- #wget -c http://fedora.inode.at/fedora/linux/releases/21/Everything/i386/os/Packages/y/yum-utils-1.1.31-24.fc21.noarch.rpm
- #rpm -Uhv --force --ignoreos --nodeps yum-utils-1.1.31-24.fc21.noarch.rpm
- #[ ! -e C:/synfig-build/mingw-rpms/tmp ] || rm -rf C:/synfig-build/mingw-rpms/tmp
- #mkdir -p C:/synfig-build/mingw-rpms/tmp
- #fedora-mingw-install mingw${ARCH}-gcc-c++ C:/synfig-build/mingw-rpms/tmp 1
- #cp C:/synfig-build/mingw-rpms/tmp${MINGWPREFIX}/bin/libstdc++-6.dll ${MINGWPREFIX}/bin/
- #fedora-mingw-install mingw${ARCH}-adwaita-icon-theme
- #fedora-mingw-install mingw${ARCH}-hicolor-icon-theme
- fedora-mingw-install mingw${ARCH}-libxml++
- fedora-mingw-install mingw${ARCH}-cairo
- fedora-mingw-install mingw${ARCH}-pango
- fedora-mingw-install mingw${ARCH}-boost
- fedora-mingw-install mingw${ARCH}-libjpeg-turbo
- fedora-mingw-install mingw${ARCH}-gtkmm30
- fedora-mingw-install mingw${ARCH}-dlfcn
- fedora-mingw-install mingw${ARCH}-SDL
- fedora-mingw-install mingw${ARCH}-fftw
- cp ${MINGWPREFIX}/include/SDL/* ${MINGWPREFIX}/include/
- # Somehow this is required too...
- fedora-mingw-install mingw${ARCH}-pcre
- # Dependencies for magick++
- fedora-mingw-install mingw${ARCH}-libltdl
- fedora-mingw-install mingw${ARCH}-libtiff
- }
- mketl()
- {
- cd $SRCPREFIX/ETL
- [ ! -e config.cache ] || rm config.cache
- autoreconf --install --force
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --enable-shared --disable-static \
- --with-libiconv-prefix=no --with-libintl-prefix=no \
- --enable-maintainer-mode $DEBUG
- make install
- }
- mksynfig()
- {
- cd $SRCPREFIX/synfig-core
- [ ! -e config.cache ] || rm config.cache
- ./bootstrap.sh
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --enable-shared --disable-static \
- --with-libiconv-prefix=no --with-libintl-prefix=no \
- --with-magickpp=yes --with-boost=${MINGWPREFIX} \
- --enable-maintainer-mode $DEBUG
- make -j$THREADS
- make install
- }
- mksynfigstudio()
- {
- cd $SRCPREFIX/synfig-studio
- [ ! -e config.cache ] || rm config.cache
- ./bootstrap.sh
- ./configure \
- --prefix=${MINGWPREFIX} \
- --exec-prefix=${MINGWPREFIX} \
- --bindir=${MINGWPREFIX}/bin \
- --sbindir=${MINGWPREFIX}/sbin \
- --libexecdir=${MINGWPREFIX}/lib \
- --datadir=${MINGWPREFIX}/share \
- --localstatedir=${MINGWPREFIX}/var \
- --sysconfdir=${MINGWPREFIX}/etc \
- --datarootdir=${MINGWPREFIX}/share \
- --docdir=/usr/share/doc/mingw-synfig -C \
- --build=i686-pc-cygwin --host=${TOOLCHAIN_HOST} \
- --enable-shared --disable-static \
- --with-libiconv-prefix=no --with-libintl-prefix=no \
- --enable-maintainer-mode $DEBUG
- make -j$THREADS
- make install
- cp -rf ${MINGWPREFIX}/share/pixmaps/synfigstudio/* ${MINGWPREFIX}/share/pixmaps
- rm -rf ${MINGWPREFIX}/share/pixmaps/synfigstudio
- mkdir -p $MINGWPREFIX/licenses
- cp -rf COPYING $MINGWPREFIX/licenses/synfigstudio.txt
- cat > ${MINGWPREFIX}/etc/gtk-3.0/gtkrc <<EOF
- # Enable native look
- gtk-theme-name = "MS-Windows"
- # Use small toolbar buttons
- gtk-toolbar-style = 0
- EOF
- }
- mkpackage()
- {
- cp -rf ${SRCPREFIX}/autobuild/gtk-3.0/settings.ini $MINGWPREFIX/share/gtk-3.0
- [ ! -d $DISTPREFIX ] || rm -rf $DISTPREFIX
- mkdir -p $DISTPREFIX
- [ -d $DISTPREFIX/bin ] || mkdir -p $DISTPREFIX/bin
- [ -d $DISTPREFIX/licenses ] || mkdir -p $DISTPREFIX/licenses
- [ -d $DISTPREFIX/lib ] || mkdir -p $DISTPREFIX/lib
- [ -d $DISTPREFIX/share ] || mkdir -p $DISTPREFIX/share
- cd $WORKSPACE
- [ -e portable-python-3.2.5.1.zip ] || wget http://download.tuxfamily.org/synfig/packages/sources/portable-python-3.2.5.1.zip
- [ ! -d python ] || rm -rf python
- unzip portable-python-3.2.5.1.zip
- [ ! -d $DISTPREFIX/python ] || rm -rf $DISTPREFIX/python
- mv python $DISTPREFIX
- cp -rf $SRCPREFIX/synfig-core/examples $DISTPREFIX/
- cp -rf $SRCPREFIX/synfig-studio/COPYING $DISTPREFIX/licenses/synfigstudio.txt
- #copy compiled files
- #cp -rf $MINGWPREFIX/bin/*.exe $DISTPREFIX/bin/
- #TODO: strip binaries?
- #cp -rf $MINGWPREFIX/bin/*.dll $DISTPREFIX/bin/
- [ -d ${DISTPREFIX}/bin ] || mkdir -p ${DISTPREFIX}/bin
- for file in \
- av*.dll \
- ffmpeg.exe \
- iconv.dll \
- libatk-\*.dll \
- libatkmm-1.6-1.dll \
- libboost_chrono\*.dll \
- libboost_filesystem\*.dll \
- libboost_program_options\*.dll \
- libboost_system\*.dll \
- libbz2\*.dll \
- libcairo\*.dll \
- libdl.dll \
- libexpat\*.dll \
- libffi\*.dll \
- libfftw\*.dll \
- libfontconfig\*.dll \
- libfreetype\*.dll \
- libgcc_s_\*.dll \
- libgdk\*.dll \
- libgettext\*.dll \
- libgio\*.dll \
- libglib\*.dll \
- libgmodule\*.dll \
- libgobject\*.dll \
- libgomp*.dll \
- libgthread\*.dll \
- libgtk\*.dll \
- libharfbuzz\*.dll \
- libiconv\*.dll \
- libintl\*.dll \
- libjasper\*.dll \
- libjpeg\*.dll \
- libltdl*.dll \
- liblzma\*.dll \
- libMagick*.dll \
- libmlt*.dll \
- libogg*.dll \
- libpango\*.dll \
- libpixman\*.dll \
- libpng\*.dll \
- libsamplerate*.dll \
- libsigc\*.dll \
- libsox*.dll \
- libstdc++\*.dll \
- libsynfig\*.dll \
- libtiff\*.dll \
- libturbojpeg.dll \
- libvorbis*.dll \
- libwinpthread*.dll \
- libxml2\*.dll \
- libxml++\*.dll \
- libz\*.dll \
- postproc*.dll \
- pthread\*.dll \
- SDL.dll \
- swscale*.dll \
- swresample*.dll \
- zlib\*.dll \
- convert.exe \
- pango-querymodules.exe \
- synfig.exe \
- synfigstudio.exe \
- lib \
- share \
- # this extra line is required!
- do
- cp -rf $MINGWPREFIX/bin/$file $DISTPREFIX/bin || true
- done
- cp -rf $MINGWPREFIX/etc $DISTPREFIX
- cp -rf $MINGWPREFIX/lib/gdk-pixbuf-2.0 $DISTPREFIX/lib
- cp -rf $MINGWPREFIX/lib/gtk-3.0 $DISTPREFIX/lib
- cp -rf $MINGWPREFIX/lib/pango $DISTPREFIX/lib
- cp -rf $MINGWPREFIX/lib/synfig $DISTPREFIX/lib
- cp -rf $MINGWPREFIX/share/fontconfig $DISTPREFIX/share
- cp -rf $MINGWPREFIX/share/glib-2.0 $DISTPREFIX/share
- cp -rf $MINGWPREFIX/share/gtk-3.0 $DISTPREFIX/share
- cp -rf $MINGWPREFIX/share/icons $DISTPREFIX/share || true
- cp -rf $MINGWPREFIX/share/locale $DISTPREFIX/share
- cp -rf $MINGWPREFIX/share/pixmaps $DISTPREFIX/share
- if [ -d $DISTPREFIX/share/pixmaps/synfigstudio ]; then
- cp -rf $DISTPREFIX/share/pixmaps/synfigstudio/* $DISTPREFIX/share/pixmaps
- rm -rf $DISTPREFIX/share/pixmaps/synfigstudio
- fi
- cp -rf $MINGWPREFIX/share/synfig $DISTPREFIX/share
- cp -rf $MINGWPREFIX/share/themes $DISTPREFIX/share
- cp -rf $MINGWPREFIX/share/xml $DISTPREFIX/share
- #cleanup
- gen_list_nsh()
- {
- [ ! -e $2.nsh ] || rm $2.nsh
- [ ! -e $2-uninst.nsh ] || rm $2-uninst.nsh
- for line in `find $1 -print`; do
- directory=`dirname $line`
- line1=`echo $directory | sed "s|\./||g" | sed "s|/|\\\\\|g"`
- line2=`echo $line | sed "s|\./||g" | sed "s|/|\\\\\|g"`
- if [ -d $line ]; then
- echo "RMDir \"\$INSTDIR\\$line2\"" >> $2-uninst.nsh
- else
- echo "SetOutPath \"\$INSTDIR\\$line1\"" >> $2.nsh
- echo "File \"$line2\"" >> $2.nsh
- echo "Delete \"\$INSTDIR\\$line2\"" >> $2-uninst.nsh
- fi
- done
- # reverse order of uninstall commands
- cp $2-uninst.nsh $2-uninst.nsh.tmp
- tac $2-uninst.nsh.tmp > $2-uninst.nsh
- rm $2-uninst.nsh.tmp
- }
- cd $DISTPREFIX
- #generate file lists
- gen_list_nsh bin bin
- sed -i '/ffmpeg\.exe/d' bin.nsh # exclude ffmpeg from the list of binaries - it will go into separate group
- gen_list_nsh etc etc
- gen_list_nsh examples examples
- gen_list_nsh lib/gdk-pixbuf-2.0 lib-gdk-pixbuf
- gen_list_nsh lib/gtk-3.0 lib-gtk
- gen_list_nsh lib/pango lib-pango
- gen_list_nsh lib/synfig lib-synfig
- gen_list_nsh licenses licenses
- #gen_list_nsh python python # -- takes too long
- gen_list_nsh share share
- #make installer
- cp -f $SRCPREFIX/autobuild/synfigstudio.nsi ./
- sed -i "s/@VERSION@/$VERSION/g" ./synfigstudio.nsi
- cp -f $SRCPREFIX/autobuild/win${ARCH}-specific.nsh ./arch-specific.nsh
- "$NSIS_BINARY" -nocd -- synfigstudio.nsi
- mv synfigstudio-${VERSION}.exe ../synfigstudio-${VERSION}-${REVISION}-${ARCH}bit.exe
- INSTALLER_PATH=`cygpath -w "$WORKSPACE"`
- echo
- echo
- echo
- echo "Installer package generated:"
- echo " ${INSTALLER_PATH}synfigstudio-${VERSION}-${REVISION}-${ARCH}bit.exe"
- echo
- }
- mkall()
- {
- mkprep
- mkffmpeg
- prepare_mingw_env
- mkimagemagick
- mklibsamplerate
- mksox
- mklibvorbis
- mkmlt
- mketl
- mksynfig
- mksynfigstudio
- mkpackage
- }
- if [ -z $1 ]; then
- mkall
- else
- echo "Executing custom user command..."
- prepare_mingw_env
- $@
- fi
|