#!/bin/bash # # cross-compile win32 libraries for syslog-win32 # on exit libraries are in cross-libs directory # # required environment variables: DISTFILES # honoured environment variables: CFLAGS, HOST # # # define distfiles # libiconv=libiconv-1.9.2.tar.gz gettext=gettext-0.14.1.tar.gz zlib=zlib-1.2.2.tar.bz2 regex=regex-0.12.tar.gz glib=glib-2.6.3.tar.bz2 function distfiles() { echo $libiconv echo $gettext echo $zlib echo $regex echo $glib } # # check DISTFILES and distfiles # if [ -z "$DISTFILES" ] ; then echo "You should specify location of source tarballs with the help of DISTFILES environment variable" exit 1 fi for file in `distfiles` ; do if [ -f "$DISTFILES"/$file ] ; then continue ; fi echo $file not found exit 1 done # # set environment variables if not set yet # if [ -z "$CFLAGS" ] ; then export CFLAGS="-Os -g" fi if [ -z "$HOST" ] ; then export HOST=i686-pc-mingw32 fi # # a wrapper for subsequent commands # function run() { echo "$@" "$@" || exit 1 } # # unpack routine # function unpack_tarball() { if [[ zip == ${1:(-3)} ]] ; then run unzip "$1" else if [[ bz2 == ${1:(-3)} ]] ; then arch=j elif [[ gz == ${1:(-2)} ]] ; then arch=z elif [[ tar == ${1:(-3)} ]] ; then arch= else echo "Unknown distfile type" exit 1 fi run tar -x${arch}f "$1" fi } # # create build directories # export PREFIX=`pwd`/cross-libs run mkdir -p cross-libs run mkdir -p cross-build run pushd cross-build # # build libiconv # unpack_tarball "$DISTFILES"/$libiconv run pushd libiconv* run ./configure --prefix="$PREFIX" --host=$HOST --disable-nls run make run make install run popd run rm -Rf libiconv* # # build gettext # unpack_tarball "$DISTFILES"/$gettext run pushd gettext*/gettext-runtime CPPFLAGS=-I"$PREFIX"/include LDFLAGS=-L"$PREFIX"/lib \ run ./configure --prefix="$PREFIX" --host=$HOST --enable-relocatable --with-libiconv-prefix="$PREFIX" run make run make install run popd run rm -Rf gettext* # # build zlib # TO DO: use original makefile; dllname must be like in official windoze distro # unpack_tarball "$DISTFILES"/$zlib run pushd zlib* cat >configure.ac <Makefile.am <configure.ac <Makefile.am <win32.cache <