revised script structure so that download and build codes are together

pull/13/head
Volker Grabsch 17 years ago
parent 72d0afa1de
commit 598e79f1c9

@ -3,9 +3,9 @@
set -e
#
# configuration
#
#---
# Configuration
#---
#TARGET=`gcc -dumpmachine` # native compiler (win32/MinGW, Cygwin)
#TARGET="i386-mingw32msvc" # MinGW cross compiler (http://www.libsdl.org/extras/win32/cross/README.txt)
@ -42,107 +42,91 @@ VERSION_libgeotiff=1.2.3
VERSION_gdal=1.4.1
#
# cleanup
#
#---
# Main
#---
case "$1" in
"")
echo "Stage 1: $BASH '$0' --download"
$BASH "$0" --download
echo "Stage 2: $BASH '$0' --build"
$BASH "$0" --build
exit 0
;;
--download)
# go ahead
;;
--build)
# go ahead
;;
*)
echo "Usage: $0 [ --download | --build ]"
exit 1
;;
esac
#---
# Prepare
#---
case "$1" in
--download)
mkdir -p "$DOWNLOAD"
;;
--build)
rm -rfv "$PREFIX"
rm -rfv "$SOURCE"
mkdir -p "$PREFIX"
mkdir -p "$SOURCE"
mkdir -p "$DOWNLOAD"
;;
esac
#---
# pkg-config
#
# download
#
# http://pkg-config.freedesktop.org/
#---
cd "$DOWNLOAD"
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "pkg-config-$VERSION_pkg_config.tar.gz" &>/dev/null ||
wget -c "http://pkgconfig.freedesktop.org/releases/pkg-config-$VERSION_pkg_config.tar.gz"
;;
tar tfz "pthreads-w32-$VERSION_pthreads-release.tar.gz" &>/dev/null ||
wget -c "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-$VERSION_pthreads-release.tar.gz"
tar tfj "zlib-$VERSION_zlib.tar.bz2" &>/dev/null ||
wget -c "http://downloads.sourceforge.net/libpng/zlib-$VERSION_zlib.tar.bz2"
tar tfz "libxml2-$VERSION_libxml2.tar.gz" &>/dev/null ||
wget -c "ftp://xmlsoft.org/libxml2/libxml2-$VERSION_libxml2.tar.gz"
tar tfj "libgpg-error-$VERSION_libgpg_error.tar.bz2" &>/dev/null ||
wget -c "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-$VERSION_libgpg_error.tar.bz2"
tar tfj "libgcrypt-$VERSION_libgcrypt.tar.bz2" &>/dev/null ||
wget -c "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-$VERSION_libgcrypt.tar.bz2"
tar tfj "gnutls-$VERSION_gnutls.tar.bz2" &>/dev/null ||
wget -c "ftp://ftp.gnutls.org/pub/gnutls/gnutls-$VERSION_gnutls.tar.bz2"
tar tfj "curl-$VERSION_curl.tar.bz2" &>/dev/null ||
wget -c "http://curl.haxx.se/download/curl-$VERSION_curl.tar.bz2"
tar tfj "libpng-$VERSION_libpng.tar.bz2" &>/dev/null ||
wget -c "http://downloads.sourceforge.net/libpng/libpng-$VERSION_libpng.tar.bz2"
tar tfz "jpegsrc.v$VERSION_jpeg.tar.gz" &>/dev/null ||
wget -c "http://www.ijg.org/files/jpegsrc.v$VERSION_jpeg.tar.gz"
tar tfz "tiff-$VERSION_tiff.tar.gz" &>/dev/null ||
wget -c "ftp://ftp.remotesensing.org/pub/libtiff/tiff-$VERSION_tiff.tar.gz"
tar tfj "freetype-$VERSION_freetype.tar.bz2" &>/dev/null ||
wget -c "http://download.savannah.gnu.org/releases/freetype/freetype-$VERSION_freetype.tar.bz2"
tar tfz "fontconfig-$VERSION_fontconfig.tar.gz" &>/dev/null ||
wget -c "http://fontconfig.org/release/fontconfig-$VERSION_fontconfig.tar.gz"
tar tfj "gd-$VERSION_gd.tar.bz2" &>/dev/null ||
wget -c "http://www.libgd.org/releases/gd-$VERSION_gd.tar.bz2"
tar tfz "SDL-$VERSION_SDL.tar.gz" &>/dev/null ||
wget -c "http://www.libsdl.org/release/SDL-$VERSION_SDL.tar.gz"
tar tfz "smpeg_$VERSION_smpeg.orig.tar.gz" &>/dev/null ||
wget -c "http://ftp.debian.org/debian/pool/main/s/smpeg/smpeg_$VERSION_smpeg.orig.tar.gz"
#svn checkout -r ... svn://svn.icculus.org/smpeg/trunk ...
tar tfz "SDL_mixer-$VERSION_SDL_mixer.tar.gz" &>/dev/null ||
wget -c "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$VERSION_SDL_mixer.tar.gz"
tar tfj "geos-$VERSION_geos.tar.bz2" &>/dev/null ||
wget -c "http://geos.refractions.net/geos-$VERSION_geos.tar.bz2"
tar tfz "proj-$VERSION_proj.tar.gz" &>/dev/null ||
wget -c "ftp://ftp.remotesensing.org/proj/proj-$VERSION_proj.tar.gz"
tar tfz "libgeotiff-$VERSION_libgeotiff.tar.gz" &>/dev/null ||
wget -c "ftp://ftp.remotesensing.org/pub/geotiff/libgeotiff/libgeotiff-$VERSION_libgeotiff.tar.gz"
tar tfz "gdal-$VERSION_gdal.tar.gz" &>/dev/null ||
wget -c "http://www.gdal.org/dl/gdal-$VERSION_gdal.tar.gz"
#
# pkg-config
#
# http://pkg-config.freedesktop.org/
#
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/pkg-config-$VERSION_pkg_config.tar.gz"
cd "pkg-config-$VERSION_pkg_config"
./configure --prefix="$PREFIX"
make install
;;
esac
#
#---
# pthreads-w32
#
# http://sourceware.org/pthreads-win32/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "pthreads-w32-$VERSION_pthreads-release.tar.gz" &>/dev/null ||
wget -c "ftp://sourceware.org/pub/pthreads-win32/pthreads-w32-$VERSION_pthreads-release.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/pthreads-w32-$VERSION_pthreads-release.tar.gz"
cd "pthreads-w32-$VERSION_pthreads-release"
@ -152,28 +136,52 @@ install -d "$PREFIX/lib"
install -m664 libpthreadGC2.a "$PREFIX/lib/libpthread.a"
install -d "$PREFIX/include"
install -m664 pthread.h sched.h semaphore.h "$PREFIX/include/"
;;
esac
#
#---
# zlib
#
# http://www.zlib.net/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "zlib-$VERSION_zlib.tar.bz2" &>/dev/null ||
wget -c "http://downloads.sourceforge.net/libpng/zlib-$VERSION_zlib.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/zlib-$VERSION_zlib.tar.bz2"
cd "zlib-$VERSION_zlib"
CC="$TARGET-gcc" RANLIB="$TARGET-ranlib" ./configure \
--prefix="$PREFIX"
make install
;;
esac
#
#---
# libxml2
#
# http://www.xmlsoft.org/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "libxml2-$VERSION_libxml2.tar.gz" &>/dev/null ||
wget -c "ftp://xmlsoft.org/libxml2/libxml2-$VERSION_libxml2.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/libxml2-$VERSION_libxml2.tar.gz"
cd "libxml2-$VERSION_libxml2"
@ -185,14 +193,26 @@ sed 's,`uname`,MinGW,g' -i xml2-config.in
--prefix="$PREFIX" \
--without-python
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# libgpg-error
#
# ftp://ftp.gnupg.org/gcrypt/libgpg-error/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "libgpg-error-$VERSION_libgpg_error.tar.bz2" &>/dev/null ||
wget -c "ftp://ftp.gnupg.org/gcrypt/libgpg-error/libgpg-error-$VERSION_libgpg_error.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/libgpg-error-$VERSION_libgpg_error.tar.bz2"
cd "libgpg-error-$VERSION_libgpg_error"
@ -201,14 +221,26 @@ cd "libgpg-error-$VERSION_libgpg_error"
--disable-shared \
--prefix="$PREFIX"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# libgcrypt
#
# ftp://ftp.gnupg.org/gcrypt/libgcrypt/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "libgcrypt-$VERSION_libgcrypt.tar.bz2" &>/dev/null ||
wget -c "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-$VERSION_libgcrypt.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/libgcrypt-$VERSION_libgcrypt.tar.bz2"
cd "libgcrypt-$VERSION_libgcrypt"
@ -220,14 +252,26 @@ sed 's,sys/times.h,sys/time.h,' -i cipher/random.c
--disable-shared \
--prefix="$PREFIX"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# GnuTLS
#
# http://www.gnu.org/software/gnutls/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "gnutls-$VERSION_gnutls.tar.bz2" &>/dev/null ||
wget -c "ftp://ftp.gnutls.org/pub/gnutls/gnutls-$VERSION_gnutls.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/gnutls-$VERSION_gnutls.tar.bz2"
cd "gnutls-$VERSION_gnutls"
@ -241,14 +285,26 @@ cd "gnutls-$VERSION_gnutls"
--with-included-libcfg \
--with-included-lzo
make install bin_PROGRAMS= noinst_PROGRAMS= defexec_DATA=
;;
esac
#
#---
# cURL
#
# http://curl.haxx.se/libcurl/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "curl-$VERSION_curl.tar.bz2" &>/dev/null ||
wget -c "http://curl.haxx.se/download/curl-$VERSION_curl.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/curl-$VERSION_curl.tar.bz2"
cd "curl-$VERSION_curl"
@ -261,14 +317,26 @@ sed 's,GNUTLS_ENABLED = 1,GNUTLS_ENABLED=1,' -i configure
CFLAGS="-I$PREFIX/include" \
LDFLAGS="-L$PREFIX/lib"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# libpng
#
# http://www.libpng.org/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "libpng-$VERSION_libpng.tar.bz2" &>/dev/null ||
wget -c "http://downloads.sourceforge.net/libpng/libpng-$VERSION_libpng.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/libpng-$VERSION_libpng.tar.bz2"
cd "libpng-$VERSION_libpng"
@ -279,14 +347,26 @@ cd "libpng-$VERSION_libpng"
CFLAGS="-I$PREFIX/include" \
LDFLAGS="-L$PREFIX/lib"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# jpeg
#
# http://www.ijg.org/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "jpegsrc.v$VERSION_jpeg.tar.gz" &>/dev/null ||
wget -c "http://www.ijg.org/files/jpegsrc.v$VERSION_jpeg.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/jpegsrc.v$VERSION_jpeg.tar.gz"
cd "jpeg-$VERSION_jpeg"
@ -295,14 +375,26 @@ cd "jpeg-$VERSION_jpeg"
--disable-shared \
--prefix="$PREFIX"
make install-lib
;;
esac
#
#---
# LibTIFF
#
# http://www.remotesensing.org/libtiff/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "tiff-$VERSION_tiff.tar.gz" &>/dev/null ||
wget -c "ftp://ftp.remotesensing.org/pub/libtiff/tiff-$VERSION_tiff.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/tiff-$VERSION_tiff.tar.gz"
cd "tiff-$VERSION_tiff"
@ -314,14 +406,26 @@ cd "tiff-$VERSION_tiff"
LDFLAGS="-L$PREFIX/lib" \
--without-x
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# freetype
#
# http://freetype.sourceforge.net/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "freetype-$VERSION_freetype.tar.bz2" &>/dev/null ||
wget -c "http://download.savannah.gnu.org/releases/freetype/freetype-$VERSION_freetype.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/freetype-$VERSION_freetype.tar.bz2"
cd "freetype-$VERSION_freetype"
@ -330,14 +434,26 @@ cd "freetype-$VERSION_freetype"
--disable-shared \
--prefix="$PREFIX"
make install
;;
esac
#
#---
# fontconfig
#
# http://fontconfig.org/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "fontconfig-$VERSION_fontconfig.tar.gz" &>/dev/null ||
wget -c "http://fontconfig.org/release/fontconfig-$VERSION_fontconfig.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/fontconfig-$VERSION_fontconfig.tar.gz"
cd "fontconfig-$VERSION_fontconfig"
@ -350,15 +466,27 @@ sed 's,^install-data-local:.*,install-data-local:,' -i src/Makefile.in
LIBXML2_CFLAGS="`xml2-config --cflags`" \
LIBXML2_LIBS="`xml2-config --libs`"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# GD
# (without support for xpm)
#
# http://www.libgd.org/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "gd-$VERSION_gd.tar.bz2" &>/dev/null ||
wget -c "http://www.libgd.org/releases/gd-$VERSION_gd.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/gd-$VERSION_gd.tar.bz2"
cd "gd-$VERSION_gd"
@ -374,14 +502,26 @@ sed 's,-lX11 ,,g' -i configure
CFLAGS="-DNONDLL -DXMD_H" \
LIBS="`xml2-config --libs`"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# SDL
#
# http://www.libsdl.org/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "SDL-$VERSION_SDL.tar.gz" &>/dev/null ||
wget -c "http://www.libsdl.org/release/SDL-$VERSION_SDL.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/SDL-$VERSION_SDL.tar.gz"
cd "SDL-$VERSION_SDL"
@ -391,15 +531,28 @@ cd "SDL-$VERSION_SDL"
--disable-debug \
--prefix="$PREFIX"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# smpeg
#
# http://icculus.org/smpeg/
# http://packages.debian.org/unstable/source/smpeg
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "smpeg_$VERSION_smpeg.orig.tar.gz" &>/dev/null ||
wget -c "http://ftp.debian.org/debian/pool/main/s/smpeg/smpeg_$VERSION_smpeg.orig.tar.gz"
#svn checkout -r ... svn://svn.icculus.org/smpeg/trunk ...
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/smpeg_$VERSION_smpeg.orig.tar.gz"
cd "smpeg-$VERSION_smpeg.orig"
@ -413,14 +566,26 @@ cd "smpeg-$VERSION_smpeg.orig"
--disable-gtk-player \
--disable-opengl-player
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# SDL_mixer
#
# http://www.libsdl.org/projects/SDL_mixer/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "SDL_mixer-$VERSION_SDL_mixer.tar.gz" &>/dev/null ||
wget -c "http://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$VERSION_SDL_mixer.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/SDL_mixer-$VERSION_SDL_mixer.tar.gz"
cd "SDL_mixer-$VERSION_SDL_mixer"
@ -430,14 +595,26 @@ sed 's,for path in /usr/local; do,for path in; do,' -i configure
--disable-shared \
--prefix="$PREFIX"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# GEOS
#
# http://geos.refractions.net/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfj "geos-$VERSION_geos.tar.bz2" &>/dev/null ||
wget -c "http://geos.refractions.net/geos-$VERSION_geos.tar.bz2"
;;
--build)
cd "$SOURCE"
tar xfvj "$DOWNLOAD/geos-$VERSION_geos.tar.bz2"
cd "geos-$VERSION_geos"
@ -447,14 +624,26 @@ cd "geos-$VERSION_geos"
--prefix="$PREFIX" \
--disable-swig
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# proj
#
# http://www.remotesensing.org/proj/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "proj-$VERSION_proj.tar.gz" &>/dev/null ||
wget -c "ftp://ftp.remotesensing.org/proj/proj-$VERSION_proj.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/proj-$VERSION_proj.tar.gz"
cd "proj-$VERSION_proj"
@ -464,14 +653,26 @@ sed 's,install-exec-local[^:],,' -i src/Makefile.in
--disable-shared \
--prefix="$PREFIX"
make install bin_PROGRAMS= noinst_PROGRAMS=
;;
esac
#
#---
# GeoTiff
#
# http://www.remotesensing.org/geotiff/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "libgeotiff-$VERSION_libgeotiff.tar.gz" &>/dev/null ||
wget -c "ftp://ftp.remotesensing.org/pub/geotiff/libgeotiff/libgeotiff-$VERSION_libgeotiff.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/libgeotiff-$VERSION_libgeotiff.tar.gz"
cd "libgeotiff-$VERSION_libgeotiff"
@ -485,14 +686,26 @@ touch configure
LDFLAGS="-L$PREFIX/lib"
make all install EXEEXT=.remove-me
rm -fv "$PREFIX"/bin/*.remove-me
;;
esac
#
#---
# GDAL
#
# http://www.gdal.org/
#
#---
case "$1" in
--download)
cd "$DOWNLOAD"
tar tfz "gdal-$VERSION_gdal.tar.gz" &>/dev/null ||
wget -c "http://www.gdal.org/dl/gdal-$VERSION_gdal.tar.gz"
;;
--build)
cd "$SOURCE"
tar xfvz "$DOWNLOAD/gdal-$VERSION_gdal.tar.gz"
cd "gdal-$VERSION_gdal"
@ -511,19 +724,28 @@ cd "gdal-$VERSION_gdal"
--with-jpeg="$PREFIX" \
--without-python \
--without-ngpython
make lib-target install-lib
make lib-target
make install-lib
make -C port install
make -C gcore install
make -C frmts install
make -C alg install
make -C ogr install OGR_ENABLED=
make -C apps install BIN_LIST=
;;
esac
#
# packing
#
#---
# Create package
#---
case "$1" in
--build)
cd "$PREFIX"
tar cv bin include lib | bzip2 -9 >"$ROOT/static_win32_libs.tar.bz2"
;;
esac

Loading…
Cancel
Save