Blame autobuild/synfigstudio-cygwin-mingw-build.sh

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