/tags/R2008-08-24/admin/Windows/msvc/run_compilation.sh
Shell | 1916 lines | 1787 code | 56 blank | 73 comment | 121 complexity | 8c9866ffa80628fdd8c9e2d9a024cae8 MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause, LGPL-2.1, GPL-3.0, LGPL-3.0
Large files files are truncated, but you can click here to view the full file
- #!/bin/sh
- ###################################################################################
- #
- # Requirements
- # - Visual Studio (tested with VC++ Express 2005)
- # - MSYS shell
- # - MSYS Development Toolkit (DTK)
- # - MinGW
- # - wget (GnuWin32)
- # - unzip (GnuWin32)
- # - octave-forge CVS tree (at least the admin/Windows/msvc/ directory)
- # - cygwin with gcc (to compile ATLAS)
- # - CMake (to compile some specific packages)
- #
- ###################################################################################
- #################
- # Configuration #
- #################
- machine_name=`uname -n`
- if test "$machine_name" = "MACROCK"; then
- INSTALL_DIR=/c/Temp/vclibs_tmp
- #INSTALL_DIR=/c/Software/VCLibs
- CYGWIN_DIR=/c/Software/cygwin
- NSI_DIR=/c/Software/NSIS
- else
- INSTALL_DIR=/d/Temp/vclibs_tmp
- CYGWIN_DIR=/d/Software/cygwin
- WGET_FLAGS="-e http_proxy=http://webproxy:8123 -e ftp_proxy=http://webproxy:8123"
- NSI_DIR=/d/Software/NSIS
- fi
- DOWNLOAD_DIR=downloaded_packages
- OCTAVEDE_DIR=../../../../octavede-svn
- DOATLAS=false
- verbose=false
- packages=
- available_packages=":f2c:libf2c:fort77:BLAS:LAPACK:ATLAS:FFTW:fftwf:PCRE:GLPK:readline:zlib:SuiteSparse:HDF5:glob:libpng:ARPACK:libjpeg:libiconv:gettext:cairo:glib:pango:freetype:libgd:libgsl:netcdf:sed:makeinfo:units:less:CLN:GiNaC:wxWidgets:gnuplot:FLTK:octave:JOGL:forge:qhull:VC:octplot:ncurses:pkg-config:fc-msvc:libcurl:libxml2:fontconfig:GraphicsMagick:bzip2:ImageMagick:libtiff:libwmf:jasper:GTK:ATK:Glibmm:Cairomm:Gtkmm:libsigc++:libglade:gtksourceview:gdl:VTE:GtkGlArea:PortAudio:playrec:OctaveDE:Gtksourceview1:FTPlib:SQLite3:FFMpeg:FTGL:gtkglext:gtkglextmm:libxslt:ICU:"
- octave_version=
- of_version=
- do_nsi=false
- do_nsiclean=true
- do_octplot=false
- do_gui=false
- do_debug=false
- do_keep=false
- download_root="http://downloads.sourceforge.net/octave/@@?download"
- #download_root="http://www.dbateman.org/octave/hidden/@@"
- # Package versions (the build instructions for those
- # packages are version-independent)
- lapackver=3.1.1
- pcrever=7.4
- curlver=7.16.4
- libpngver=1.2.29
- glpkver=4.23
- gslver=1.10
- netcdfver=3.6.2
- cairover=1.4.10
- glibver=2.14.3
- pangover=1.19.0
- ftver=2.3.5
- libxml2ver=2.6.30
- libxsltver=1.1.24
- fontconfigver=2.5.0
- gdver=2.0.35
- hdf5ver=1.6.6
- libiconvver=1.12
- gettextver=0.17
- gmagickver=1.1.10
- bzip2ver=1.0.4
- imagickver=6.3.8
- tiffver=3.8.2
- wmfver=0.2.8.4
- jasperver=1.900.1
- gtkver=2.12.9
- atkver=1.22.0
- glibmmver=2.14.2
- cairommver=1.4.8
- gtkmmver=2.12.5
- libsigcver=2.0.18
- libgladever=2.6.2
- gtksourceviewver=2.2.0
- gtksourceview1ver=1.8.5
- gdlver=0.7.11
- vtever=0.16.13
- gtkglareaver=1.99.0
- sqlite3ver=3.5.8
- atlver=3.8.1
- ftglver=2.1.2
- gtkglextver=1.2.0
- gtkglextmmver=1.2.0
- ###################################################################################
- function download_file
- {
- filename=$1
- location=$2
- if ! test -f "$DOWNLOAD_DIR/$filename"; then
- echo -n "downloading $filename... "
- mkdir -p "$DOWNLOAD_DIR"
- echo "wget $WGET_FLAGS -o \"$DOWNLOAD_DIR/$filename\" \"$location\"" >&5
- wget $WGET_FLAGS -O "$DOWNLOAD_DIR/$filename" "$location"
- if ! test -f "$DOWNLOAD_DIR/$filename"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- }
- function unpack_file
- {
- filename=$1
- tarflag=
- case $filename in
- *.tar.gz | *.tgz)
- tarflag=z
- ;;
- *.tar.bz2)
- tarflag=j
- ;;
- esac
- (cd "$DOWNLOAD_DIR" &&
- tar xf$tarflag $filename)
- }
- todo_packages=
- while test $# -gt 0; do
- case "$1" in
- -v | --verbose)
- verbose=true
- ;;
- -a | --atlas)
- DOATLAS=true
- ;;
- --atlas=*)
- DOATLAS=true
- atlver=`echo $1 | sed -e 's/--atlas=//'`
- ;;
- -f | --force)
- todo_packages="$available_packages"
- ;;
- -k | --keep)
- do_keep=true
- ;;
- -g)
- do_debug=true;
- ;;
- --list)
- IFS=:
- for pack in $available_packages; do
- if test -n "$pack"; then
- echo $pack
- fi
- done
- exit 0
- ;;
- --release=*)
- octave_version=`echo $1 | sed -e 's/--release=//'`
- if test "$octave_version" = devel; then
- octave_version="vc8-debug"
- fi
- ;;
- --forge=*)
- of_version=`echo $1 | sed -e 's/--forge=//'`
- ;;
- --nsi | --nsi=*)
- do_nsi=true
- nsiarg=`echo $1 | sed -e 's/--nsi=//'`
- case $nsiarg in
- keep)
- do_nsiclean=false
- ;;
- clean)
- do_nsiclean=true
- ;;
- esac
- ;;
- --octplot)
- do_octplot=true
- ;;
- --gui)
- do_gui=true
- ;;
- --prefix=*)
- INSTALL_DIR=`echo $1 | sed -e 's/--prefix=//'`
- ;;
- -*)
- echo "unknown flag: $1"
- exit -1
- ;;
- *)
- if ! `echo $available_packages | grep -i -e ":$1:" > /dev/null`; then
- echo "unknown package: $1"
- exit -1
- fi
- if test -z "$packages"; then
- packages=":$1:"
- else
- packages="$packages:$1:"
- fi
- ;;
- esac
- shift
- done
- atlnum=`echo $atlver | sed -e 's/\.//g'`
- build_flag=false
- if $verbose; then
- exec 5>&1
- else
- WGET_FLAGS="$WGET_FLAGS -q"
- exec 5>/dev/null
- fi
- W_CFLAGS="-O2 -MD"
- W_CXXFLAGS="-O2 -MD -EHsc"
- W_FCFLAGS="-O2 -MD"
- W_FFLAGS="-O2 -MD"
- W_LDFLAGS=
- W_CPPFLAGS="-DWIN32 -D_WIN32 -D__WIN32__"
- if $do_debug; then
- W_CFLAGS="-g -MD"
- W_CXXFLAGS="-g -MD -EHsc"
- W_FCFLAGS="-g -MD"
- W_FFLAGS="-g -MD"
- W_LDFLAGS="-Wl,-debug"
- fi
- function remove_package
- {
- packdir="$1"
- if $build_flag; then
- if ! $do_debug; then
- if ! $do_keep; then
- rm -rf "$packdir"
- fi
- fi
- fi
- }
- function configure_package
- {
- CC=cc-msvc CFLAGS="$W_CFLAGS" CXX=cc-msvc CXXFLAGS="$W_CXXFLAGS" FC=fc-msvc FCFLAGS="$W_FCFLAGS" \
- F77=fc-msvc FFLAGS="$W_FFLAGS" CPPFLAGS="$W_CPPFLAGS" AR=ar-msvc RANLIB=ranlib-msvc \
- LDFLAGS="$W_LDFLAGS" ./configure --prefix="$tdir_w32_forward" $*
- }
- function check_package
- {
- pack=$1
- if ! `echo $available_packages | grep -e ":$pack:" > /dev/null`; then
- echo "check_package: unknown package: $pack"
- exit -1
- fi
- if test ! -z "$packages"; then
- found=`echo "$packages" | grep -i -e ":$pack:"`
- if test ! -z "$found"; then
- echo "processing $pack... "
- build_flag=false
- return 0
- fi
- fi
- echo "skipping $pack... "
- return -1
- }
- function end_package
- {
- build_flag=true
- }
- function failed_package
- {
- ! $build_flag
- }
- function check_cmake
- {
- cmake=`which cmake.exe`
- if test -z "$cmake"; then
- echo "CMake not found in PATH"
- return -1
- fi
- }
- function create_module_rc
- {
- module_name=$1
- module_version=$2
- module_filename=$3
- module_company="$4"
- module_desc="$5"
- module_copyright="$6"
- module_major=`echo $module_version | sed -e "s/\..*//"`
- module_minor=`echo $module_version | sed -e "s/^[^.]*\.//" -e "s/\..*//"`
- module_patch=`echo $module_version | sed -n -e "s/[0-9]\+\.[0-9]\+\.\([^.]*\).*/\1/p"`
- module_build=`echo $module_version | sed -n -e "s/[0-9]\+\.[0-9]\+\.[0-9]\+\.\([^.]*\).*/\1/p"`
- if test -z "$module_patch"; then
- module_patch=0
- fi
- if test -z "$module_build"; then
- module_build=0
- fi
- cat <<EOF
- #define WINDOWS_LEAN_AND_MEAN
- #include <windows.h>
- VS_VERSION_INFO VERSIONINFO
- FILEVERSION $module_major, $module_minor, $module_patch, $module_build
- PRODUCTVERSION $module_major, $module_minor, $module_patch, $module_build
- FILEFLAGSMASK 0x3fL
- FILEFLAGS 0
- FILEOS VOS_NT_WINDOWS32
- FILETYPE VFT_APP
- FILESUBTYPE VFT2_UNKNOWN
- BEGIN
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x409, 1200
- END
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040904b0"
- BEGIN
- VALUE "CompanyName", "$module_company\\0"
- VALUE "FileDescription", "$module_desc\\0"
- VALUE "FileVersion", "$module_version\\0"
- VALUE "InternalName", "$module_name\\0"
- VALUE "LegalCopyright", "$module_copyright\\0"
- VALUE "OriginalFilename", "$module_filename\\0"
- VALUE "ProductName", "$module_name\\0"
- VALUE "ProductVersion", "$module_version\\0"
- END
- END
- END
- EOF
- }
- function post_process_libtool
- {
- if test -z "$1"; then
- ltfile=libtool
- else
- ltfile="$1"
- fi
- sed -e '/#.*BEGIN LIBTOOL TAG CONFIG: CXX/,/#.*END LIBTOOL TAG CONFIG: CXX/ {/^archive_cmds=.*/,/^postinstall_cmds=.*/ {/^postinstall_cmds=.*/!d;};}' \
- -e 's,/OUT:,-OUT:,g' \
- -e 's/\$EGREP -e "\$export_symbols_regex"/$EGREP -e EXPORTS -e "$export_symbols_regex"/' \
- -e 's/egrep -e "\$export_symbols_regex"/egrep -e EXPORTS -e "$export_symbols_regex"/' \
- -e 's/^export_symbols_cmds="\(.*\) > \\\$export_symbols"/export_symbols_cmds="(echo EXPORTS; \1) > \\$export_symbols"/' \
- -e 's,^\([^=]*\)=.*cygpath.*$,\1="",g' \
- -e 's,-link -dll,-shared,g' \
- -e 's/^wl=.*$/wl="-Wl,"/' \
- -e 's/^deplibs_check_method=.*$/deplibs_check_method="pass_all"/' \
- -e 's,^archive_expsym_cmds=.*$,,' \
- -e 's,^archive_cmds=.*$,\0,p' \
- -e 's,^archive_cmds=\(.*\)$,archive_expsym_cmds=\1,' \
- -e '/^archive_expsym_cmds=/ {s,-shared,-shared ${wl}-def:\\$export_symbols,;}' \
- -e '/^library_names_spec=/ {s, \\$libname\.lib,,;}' \
- -e 's/S_IXUSR/S_IEXEC/g' \
- -e 's/^reload_flag=.*$/reload_flag=""/' \
- -e 's/^reload_cmds=.*$/reload_cmds="lib -OUT:\\$output\\$reload_objs"/' \
- -e 's/^old_archive_from_new_cmds=.*$/old_archive_from_new_cmds=""/' \
- -e '/testbindir=.*/ {a\
- case $host in\
- *-*-mingw*)\
- dir=`cd "$dir" && pwd`\
- ;;\
- esac
- ;}' \
- -e "s,^postinstall_cmds=.*$,postinstall_cmds='if echo \"\$destdir\" | grep -e \\\\\"/lib/\\\\\\\\?\$\\\\\" >\& /dev/null; then name=\`echo \\\\\$file | sed -e \"s/.*\\\\///\" -e \"s/^lib//\" -e \"s/\\\\.la\$//\"\`; implibname=\`echo \\\\\$dlname | sed -e \"s/\\\\.dll/.lib/\"\`; \$install_prog \$dir/\\\\\$implibname \$destdir/\\\\\$name.lib; test -d \$destdir/../bin || mkdir -p \$destdir/../bin; mv -f \$destdir/\$dlname \$destdir/../bin; fi'," "$ltfile" > ttt &&
- mv ttt "$ltfile"
- }
- ###################################################################################
- # Check Visual Studio availability
- echo -n "checking for Visual Studio... "
- cl_path=`which cl.exe`
- if test "x$cl_path" = "x"; then
- echo "no"
- echo "Visual Studio must be installed and in your PATH variable"
- exit -1
- else
- echo "yes"
- fi
- echo -n "checking for Visual Studio version... "
- clver=`cl -? 2>&1 | sed -n -e 's/.*Compiler Version \([0-9]\+\).*/\1/p'`
- crtver=
- msvcver=
- case $clver in
- 14)
- crtver=80
- msvcver=2005
- echo "2005"
- ;;
- 15)
- crtver=90
- msvcver=2008
- echo "2008"
- echo -n "registering vcprojectengine.dll... "
- regsvr32 -s "`which vcprojectengine.dll`"
- echo "done"
- ;;
- *)
- echo "unknown"
- echo "ERROR: unsupported Visual C++ compiler version: $clver"
- exit -1
- ;;
- esac
- echo -n "checking for Platform SDK... "
- cat <<EOF > conftest.c
- #include <windows.h>
- int main(int argc, char **argv)
- { return 0; }
- EOF
- cl -nologo -c conftest.c > /dev/null 2>&1
- if ! test -f conftest.obj; then
- echo "no"
- echo "unable to compile simple windows program, Platform SDK is probably not available"
- exit -1
- else
- echo "yes"
- fi
- rm -f conftest.*
- # Create target directory
- echo -n "creating target directories... "
- mkdir -p "$INSTALL_DIR"
- mkdir -p "$INSTALL_DIR/bin"
- mkdir -p "$INSTALL_DIR/lib"
- mkdir -p "$INSTALL_DIR/include"
- mkdir -p "$INSTALL_DIR/license"
- echo "done"
- tbindir="$INSTALL_DIR/bin"
- tlibdir="$INSTALL_DIR/lib"
- tincludedir="$INSTALL_DIR/include"
- tlicdir="$INSTALL_DIR/license"
- # Add $tbindir to PATH, but re-add "/usr/bin" in front to be sure
- # we're using the MSYS sed version; MSVC-compiled version does not
- # accept single-quoted arguments.
- PATH=/usr/bin:$tbindir:$PATH
- tdir_w32=`cd "$INSTALL_DIR" && pwd -W`
- tdir_w32_forward="$tdir_w32"
- tdir_w32_1=`echo $tdir_w32 | sed -e 's,/,\\\\,g'`
- tdir_w32=`echo $tdir_w32 | sed -e 's,/,\\\\\\\\,g'`
- tlibdir_quoted="${tlibdir// /\\ }"
- INCLUDE="$tdir_w32_1\\include;$INCLUDE"
- LIB="$tdir_w32_1\\lib;$LIB"
- # Looking for java
- echo -n "checking for Java Development Kit... "
- jdkver=`reg query "HKLM\\\\Software\\\\JavaSoft\\\\Java Development Kit" //v CurrentVersion | sed -n -e 's/^.*REG_SZ[^0-9]*//p'`
- if test -n "$jdkver"; then
- jdkhome=`reg query "HKLM\\\\Software\\\\JavaSoft\\\\Java Development Kit\\\\$jdkver" //v JavaHome | sed -n -e 's/^.*REG_SZ[^A-Za-z]*//p'`
- if test -n "$jdkhome" -a -d "$jdkhome"; then
- echo "$jdkver"
- jdkhome_msys=`cd "$jdkhome" && pwd`
- PATH="$jdkhome_msys/bin:$PATH"
- INCLUDE="$jdkhome\\include;$jdkhome\\include\\win32;$INCLUDE"
- else
- jdkhome=
- fi
- fi
- if test -z "$jdkhome"; then
- echo "none"
- fi
- # Check cc-msvc
- echo -n "checking for cc-msvc.exe... "
- if ! test -f "$tbindir/cc-msvc.exe"; then
- echo "compiling"
- cl -nologo -O2 -EHs cc-msvc.cc
- if ! test -f cc-msvc.exe; then
- echo "failed to compile cc-msvc.exe"
- exit -1
- fi
- mv -f cc-msvc.exe "$tbindir"
- rm -f cc-msvc.obj
- else
- echo "installed"
- fi
- # Check unistd.h
- echo -n "checking for unistd.h... "
- if test ! -f "$tincludedir/unistd.h"; then
- echo "creating"
- cat >> "$tincludedir/unistd.h" <<\EOF
- #include <direct.h>
- #include <process.h>
- #include <io.h>
- EOF
- else
- echo "installed"
- fi
- # Check ar-msvc, ranlib-msvc
- echo -n "checking for ar-msvc... "
- if ! test -f "$tbindir/ar-msvc"; then
- echo "copying"
- cp -f ar-msvc "$tbindir"
- else
- echo "installed"
- fi
- echo -n "checking for ranlib-msvc... "
- if ! test -f "$tbindir/ranlib-msvc"; then
- echo "copying"
- cp -f ranlib-msvc "$tbindir"
- else
- echo "installed"
- fi
- echo -n "checking for build_atlas_dll... "
- if test ! -f "$tbindir/build_atlas_dll"; then
- echo "copying"
- cp -f build_atlas_dll "$tbindir"
- cp -f atl_blas.def lapack.def "$tlibdir"
- else
- echo "installed"
- fi
- function todo_check
- {
- path=$1
- name=$2
- if ! `echo $available_packages | grep -i -e ":$name:" > /dev/null`; then
- echo "todo_check: unknown package: $name"
- exit -1
- fi
- echo -n "checking for $name... "
- if test ! -f "$path"; then
- echo "no";
- packages="$packages:$name:"
- else
- echo "installed"
- fi
- }
- if ! $do_nsi && test -z "$todo_packages"; then
- if test -z "$packages"; then
- todo_check "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest" VC
- todo_check "$tbindir/f2c.exe" f2c
- todo_check "$tlibdir/f2c.lib" libf2c
- #todo_check "$tbindir/fort77" fort77
- todo_check "$tlibdir/blas.lib" BLAS
- todo_check "$tlibdir/lapack.lib" LAPACK
- if $DOATLAS; then
- echo -n "checking for ATLAS... "
- atl_dlls=`find "$tbindir" -name "libblas_atl${atlnum}_*.dll"`
- if test -z "$atl_dlls"; then
- echo "no"
- packages="$packages ATLAS"
- else
- echo "installed"
- fi
- fi
- todo_check "$tbindir/libfftw3-3.dll" FFTW
- todo_check "$tbindir/libfftw3f-3.dll" fftwf
- todo_check "$tlibdir/pcre.lib" PCRE
- todo_check "$tlibdir/glpk.lib" GLPK
- todo_check "$tlibdir/ncurses.lib" ncurses
- todo_check "$tlibdir/readline.lib" readline
- todo_check "$tbindir/zlib1.dll" zlib
- todo_check "$tlibdir/cxsparse.lib" SuiteSparse
- todo_check "$tlibdir/hdf5.lib" HDF5
- todo_check "$tlibdir/glob.lib" glob
- todo_check "$tlibdir/png.lib" libpng
- todo_check "$tlibdir/arpack.lib" ARPACK
- todo_check "$tlibdir/jpeg.lib" libjpeg
- todo_check "$tlibdir/iconv.lib" libiconv
- todo_check "$tlibdir/intl.lib" gettext
- todo_check "$tbindir/libcairo-2.dll" cairo
- todo_check "$tbindir/libglib-2.0-0.dll" glib
- todo_check "$tbindir/libpango-1.0-0.dll" pango
- todo_check "$tlibdir/xml2.lib" libxml2
- todo_check "$tlibdir/xslt.lib" libxslt
- todo_check "$tlibdir/icu.lib" ICU
- todo_check "$tlibdir/fontconfig.lib" fontconfig
- todo_check "$tlibdir/freetype.lib" freetype
- todo_check "$tlibdir/gd.lib" libgd
- todo_check "$tlibdir/gsl.lib" libgsl
- todo_check "$tlibdir/netcdf.lib" netcdf
- todo_check "$tbindir/sed.exe" sed
- todo_check "$tbindir/makeinfo.exe" makeinfo
- todo_check "$tbindir/units.exe" units
- todo_check "$tbindir/less.exe" less
- todo_check "$tlibdir/cln.lib" CLN
- todo_check "$tlibdir/ginac.lib" GiNaC
- todo_check "$tlibdir/wxmsw28.lib" wxWidgets
- todo_check "$tbindir/pgnuplot.exe" gnuplot
- todo_check "$tbindir/fltkdll.dll" FLTK
- if test ! -z "$octave_version"; then
- todo_check "$INSTALL_DIR/local/octave-$octave_version/bin/octave.exe" octave
- todo_check "$INSTALL_DIR/local/octave-$octave_version/libexec/octave/$octave_version/oct/i686-pc-msdosmsvc/playrec.mex" playrec
- if $do_octplot; then
- todo_check "$INSTALL_DIR/local/octave-$octave_version/share/octplot/oct/octplot.exe" octplot
- fi
- if $do_gui; then
- todo_check "$INSTALL_DIR/local/octave-$octave_version/bin/octavede.exe" OctaveDE
- fi
- fi
- if test ! -z "$of_version"; then
- packages="$packages forge"
- fi
- todo_check "$tbindir/jogl.jar" JOGL
- todo_check "$tlibdir/qhull.lib" qhull
- todo_check "$tbindir/pkg-config.exe" pkg-config
- todo_check "$tbindir/fc-msvc.exe" fc-msvc
- todo_check "$tbindir/libcurl.dll" libcurl
- todo_check "$tlibdir/bz2.lib" bzip2
- #todo_check "$tlibdir/GraphicsMagick.lib" GraphicsMagick
- todo_check "$tlibdir/Magick.lib" ImageMagick
- todo_check "$tlibdir/tiff.lib" libtiff
- todo_check "$tlibdir/wmf.lib" libwmf
- todo_check "$tlibdir/jasper.lib" jasper
- todo_check "$tbindir/libatk-1.0-0.dll" ATK
- todo_check "$tbindir/libgtk-win32-2.0-0.dll" GTK
- todo_check "$tlibdir/glibmm-2.4.lib" Glibmm
- todo_check "$tlibdir/cairomm-1.0.lib" Cairomm
- todo_check "$tlibdir/gtkmm-2.4.lib" Gtkmm
- todo_check "$tlibdir/sigc-2.0.lib" libsigc++
- todo_check "$tlibdir/glade-2.0.lib" libglade
- todo_check "$tlibdir/gtksourceview-2.0.lib" gtksourceview
- todo_check "$tlibdir/gdl-1.lib" gdl
- todo_check "$tlibdir/vte.lib" VTE
- todo_check "$tlibdir/gtkgl-2.0.lib" GtkGlArea
- todo_check "$tlibdir/ftp.lib" FTPlib
- todo_check "$tlibdir/sqlite3.lib" SQLite3
- todo_check "$tlibdir/avcodec.lib" FFMpeg
- todo_check "$tlibdir/ftgl.lib" FTGL
- todo_check "$tlibdir/gtkglext-win32-1.0.lib" gtkglext
- todo_check "$tlibdir/gtkglextmm-win32-1.2-0.lib" gtkglextmm
- fi
- else
- packages="$todo_packages"
- fi
- if test -z "$octave_version"; then
- packages=`echo $packages | sed -e 's/octave//'`
- fi
- if test -z "$of_version"; then
- packages=`echo $packages | sed -e 's/forge//'`
- fi
- if ! $do_nsi && test -z "$packages"; then
- echo "nothing to do"
- exit 0
- else
- echo "***********************************"
- if test ! -z "$packages"; then
- echo "installing packages:"
- for pack in $packages; do
- echo " $pack"
- done
- fi
- if $do_nsi; then
- echo "creating installer"
- fi
- echo "***********************************"
- fi
- ######
- # VC #
- ######
- if check_package VC; then
- msvc=`ls /c/WINDOWS/WinSxS/*/msvcr$crtver.dll 2> /dev/null | tail -n 1`
- if test -z "$msvc"; then
- echo "cannot find VC++ runtime libraries"
- exit -1
- fi
- msvc_path=`echo $msvc | sed -e "s,/msvcr$crtver.dll$,,"`
- msvc_name=`echo $msvc_path | sed -e 's,.*/,,'`
- mkdir -p "$tbindir/Microsoft.VC$crtver.CRT"
- cp $msvc_path/*.dll "$tbindir/Microsoft.VC$crtver.CRT"
- if true; then
- cp "/c/WINDOWS/WinSxS/Manifests/$msvc_name.manifest" "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest"
- elif "$crtver" == "80"; then
- cat > "$tbindir/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest" << EOF
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
- <!-- Copyright 1981-2001 Microsoft Corporation -->
- <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
- <noInheritable/>
- <assemblyIdentity
- type="win32"
- name="Microsoft.VC80.CRT"
- version="8.0.50608.0"
- processorArchitecture="x86"
- publicKeyToken="1fc8b3b9a1e18e3b"
- />
- <file name="msvcr80.dll"/>
- <file name="msvcp80.dll"/>
- <file name="msvcm80.dll"/>
- </assembly>
- EOF
- else
- echo "ERROR: don't have built-in manifest for CRT version $crtver"
- exit -1
- fi
- if test ! -f "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest"; then
- echo "failed"
- exit -1
- else
- msvc_ver=`grep "version=" "$tbindir/Microsoft.VC$crtver.CRT/Microsoft.VC$crtver.CRT.manifest" | tail -n 1 | sed -e "s/.*version=\"\([^ ]*\)\".*/\1/"`
- echo "done (using version $msvc_ver)"
- fi
- fi
- #######
- # f2c #
- #######
- if check_package f2c; then
- download_file f2c.exe.gz http://www.netlib.org/f2c/mswin/f2c.exe.gz
- echo -n "decompressing f2c... "
- gzip -d -c "$DOWNLOAD_DIR/f2c.exe.gz" > "$tbindir/f2c.exe"
- echo "done"
- fi
- ##########
- # libf2c #
- ##########
- if check_package libf2c; then
- download_file libf2c.zip http://www.netlib.org/f2c/libf2c.zip
- (cd "$DOWNLOAD_DIR" && mkdir libf2c && cd libf2c && unzip -q ../libf2c.zip)
- echo -n "compiling libf2c... "
- (cd "$DOWNLOAD_DIR/libf2c";
- sed -e 's/^CFLAGS = /CFLAGS = -MD -DIEEE_COMPLEX_DIVIDE /' makefile.vc > ttt &&
- mv ttt makefile.vc &&
- sed -e 's/^extern int isatty(int);$/\/*extern int isatty(in);*\//' fio.h > ttt &&
- mv ttt fio.h &&
- nmake -f makefile.vc &&
- cp -f f2c.h "$tincludedir" &&
- cp -f vcf2c.lib "$tlibdir/f2c.lib") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/libf2c"
- if failed_package || test ! -f "$tlibdir/f2c.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ##########
- # fort77 #
- ##########
- if check_package fort77; then
- download_file fort77-1.18.tar.gz ftp://sunsite.unc.edu/pub/Linux/devel/lang/fortran/fort77-1.18.tar.gz
- echo -n "decompressing fort77... "
- (cd "$DOWNLOAD_DIR" && tar xfz fort77-1.18.tar.gz)
- echo "done"
- echo -n "installing fort77... "
- (cd "$DOWNLOAD_DIR/fort77-1.18" &&
- sed -e "s/, *\"-lm\" *//" -e "s/\/lib\/cpp/\$cc -E/" -e "s/\$verbose > 1/1/" \
- -e "s/|| 'cc'/|| 'cc-msvc'/" fort77 > ttt &&
- mv ttt fort77 &&
- cp fort77 "$tbindir") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/fort77-1.18"
- if failed_package || test ! -f "$tbindir/fort77"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ########
- # BLAS #
- ########
- if check_package BLAS; then
- download_file blas.tgz ftp://ftp.netlib.org/blas/blas.tgz
- unpack_file blas.tgz
- (cd "$DOWNLOAD_DIR" && tar xfz blas.tgz)
- echo -n "compiling BLAS... "
- cp libs/blas.makefile "$DOWNLOAD_DIR/BLAS"
- (cd "$DOWNLOAD_DIR/BLAS" &&
- sed -e "s/^OBJECTS =/OBJECTS = blas.res/" blas.makefile > ttt &&
- mv ttt blas.makefile &&
- echo "blas.res: blas.rc" >> blas.makefile &&
- echo " rc -fo \$@ \$<" >> blas.makefile &&
- create_module_rc BLAS 1.0 blas.dll "Netlib (http://www.netlib.org)" \
- "BLAS F77 Reference Implementation" "Public Domain" > blas.rc &&
- make -f blas.makefile &&
- cp libblas.dll "$tbindir" &&
- cp blas.lib "$tlibdir") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/BLAS"
- if failed_package || test ! -f "$tlibdir/blas.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ##########
- # LAPACK #
- ##########
- if check_package LAPACK; then
- download_file lapack-lite-$lapackver.tgz ftp://ftp.netlib.org/lapack/lapack-lite-$lapackver.tgz
- echo -n "decompressing LAPACK... "
- unpack_file lapack-lite-$lapackver.tgz
- echo "done"
- echo -n "compiling LAPACK... "
- cp libs/lapack.makefile "$DOWNLOAD_DIR/lapack-lite-$lapackver/SRC"
- (cd "$DOWNLOAD_DIR/lapack-lite-$lapackver/SRC" &&
- lapack_copyright=`grep -e '^Copyright' ../COPYING | head -n 1`
- create_module_rc LAPACK $lapackver lapack.dll "Netlib (http://www.netlib.org)" \
- "Lapack F77 Reference Implementation" "$lapack_copyright" > lapack.rc &&
- rc -fo lapack.res lapack.rc &&
- make -f lapack.makefile &&
- cp liblapack.dll "$tbindir" &&
- cp lapack.lib liblapack_f77.lib "$tlibdir" &&
- cp ../COPYING "$tlicdir/COPYING.LAPACK") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/lapack-lite-$lapackver"
- if failed_package || test ! -f "$tlibdir/lapack.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- #########
- # ATLAS #
- #########
- if $DOATLAS && check_package ATLAS; then
- if test $atlnum -ge 380; then
- download_file atlas$atlver.tar.bz2 "http://downloads.sourceforge.net/math-atlas/atlas$atlver.tar.bz2?big_mirror=0"
- echo -n "decompressing ATLAS... "
- unpack_file atlas$atlver.tar.bz2
- cp check_cpu_flag.c "$DOWNLOAD_DIR/ATLAS"
- echo "done"
- echo "compiling ATLAS... (version $atlver)"
- (cd "$DOWNLOAD_DIR/ATLAS" &&
- cc-msvc -O2 -MT check_cpu_flag.c -luser32 -lshell32 &&
- SSE1=16 && SSE2=24 && SSE3=28 &&
- for arch in SSE1 SSE2 SSE3; do
- if check_cpu_flag $arch; then
- echo "compiling ATLAS for $arch..."
- (mkdir -p build_$arch && cd build_$arch &&
- start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
- -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && ../configure -V ${!arch} -Si nocygwin 1" &&
- atlarch=`sed -n -e 's/ *ARCH = \(.*\)$/\1/p' Make.inc` &&
- start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
- -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && make build" &&
- cd lib &&
- cc-msvc -shared -o libblas.dll -Wl,-def:$tdir_w32_forward/lib/atl_blas.def \
- -Wl,-implib:blas.lib libatlas.a libcblas.a libf77blas.a -lf2c &&
- cc-msvc -shared -o liblapack.dll -Wl,-def:$tdir_w32_forward/lib/lapack.def \
- -Wl,-implib:lapack.lib liblapack.a -lliblapack_f77 -L. -lblas -lf2c &&
- cp libblas.dll "$tbindir/libblas_atl${atlnum}_$atlarch.dll" &&
- cp liblapack.dll "$tbindir/liblapack_atl${atlnum}_$atlarch.dll") || break
- fi
- done) >&5 2>&1
- else
- download_file atlas-3.6.0.tar.gz 'http://downloads.sourceforge.net/math-atlas/atlas3.6.0.tar.gz?modtime=1072051200&big_mirror=0'
- echo -n "decompressing ATLAS... "
- (cd "$DOWNLOAD_DIR" && tar xfz atlas-3.6.0.tar.gz)
- cp libs/atlas-3.6.0.diff "$DOWNLOAD_DIR/ATLAS"
- echo "done"
- echo -n "compiling ATLAS... "
- (cd "$DOWNLOAD_DIR/ATLAS" &&
- patch -p1 < atlas-3.6.0.diff &&
- start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
- -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && make xconfig && echo -n '' | ./xconfig -c mvc" &&
- arch=`ls Make.*_* | sed -e 's/Make\.//'` &&
- start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
- -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && make install arch=$arch" &&
- start "//wait" "$CYGWIN_DIR/bin/bash.exe" --login \
- -c "cd `pwd -W | sed -e 's,/,\\\\\\\\\\\\\\\\,g'` && cd lib/$arch && build_atlas_dll" &&
- cp lib/$arch/libblas.dll "$tbindir/libblas_atl${atlnum}_$arch.dll" &&
- cp lib/$arch/liblapack.dll "$tbindir/liblapack_atl${atlnum}_$arch.dll") >&5 2>&1 && end_package
- fi
- remove_package "$DOWNLOAD_DIR/ATLAS"
- atl_dlls=`find "$tbindir" -name "libblas_atl${atlnum}_*.dll"`
- if failed_package || test -z "$atl_dlls"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ########
- # PCRE #
- ########
- if check_package PCRE; then
- download_file pcre-$pcrever.tar.bz2 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-$pcrever.tar.bz2
- echo -n "decompressing PCRE... "
- unpack_file pcre-$pcrever.tar.bz2
- echo "done"
- echo -n "compiling PCRE... "
- pcre_desc="Perl Compatible Regular Expression Library"
- pcre_company="Philip Hazel <ph10@cam.ac.uk>"
- pcre_copyright=`grep -e '^Copyright' "$DOWNLOAD_DIR/pcre-$pcrever/LICENCE" | head -n 1`
- (cd "$DOWNLOAD_DIR/pcre-$pcrever" &&
- create_module_rc PCRE $pcrever pcre.dll "$pcre_company" "$pcre_desc" "$pcre_copyright" > pcre.rc &&
- if false && check_cmake; then
- sed -e "s/SET(PCRE_SOURCES/SET(PCRE_SOURCES pcre.rc/" CMakeLists.txt > ttt &&
- mv ttt CMakeLists.txt &&
- cmake -G "NMake Makefiles" -D BUILD_SHARED_LIBS:BOOL=ON \
- -D PCRE_NEWLINE:STRING=ANYCRLF \
- -D PCRE_SUPPORT_UNICODE_PROPERTIES:BOOL=ON \
- -D PCRE_BUILD_PCRECPP:BOOL=OFF \
- -D CMAKE_BUILD_TYPE:STRING=Release \
- -D "CMAKE_INSTALL_PREFIX:STRING=$tdir_w32_forward" . &&
- nmake &&
- nmake install
- else
- configure_package --enable-shared --disable-static \
- --disable-cpp --enable-unicode-properties --enable-newline-is-anycrlf &&
- post_process_libtool &&
- sed -e 's/^return !isdirectory(filename) *$/\0;/' pcregrep.c > ttt &&
- mv ttt pcregrep.c &&
- sed -e 's/libpcre_la_LDFLAGS =/libpcre_la_LDFLAGS = -Wl,pcre.res/' \
- -e 's/libpcre_la_OBJECTS =/libpcre_la_OBJECTS = pcre.res/' Makefile > ttt &&
- mv ttt Makefile &&
- echo "pcre.res: pcre.rc" >> Makefile &&
- echo " rc -fo \$@ \$<" >> Makefile &&
- make &&
- make install &&
- rm -f $tlibdir_quoted/libpcre*.la
- fi) >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/pcre-$pcrever"
- if failed_package || test ! -f "$tlibdir/pcre.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ###########
- # fc-msvc #
- ###########
- if check_package fc-msvc; then
- echo -n "compiling fc-msvc... "
- cl -nologo -MD -O2 -EHs fc-msvc.cc pcre.lib
- mt -outputresource:fc-msvc.exe -manifest fc-msvc.exe.manifest
- if ! test -f fc-msvc.exe; then
- echo "failed to compile fc-msvc.exe"
- exit -1
- fi
- mv -f fc-msvc.exe "$tbindir"
- rm -f fc-msvc.obj fc-msvc.exe.manifest
- echo "done"
- fi
- ########
- # FFTW #
- ########
- if check_package FFTW; then
- download_file fftw-3.1.2.tar.gz ftp://ftp.fftw.org/pub/fftw/fftw-3.1.2.tar.gz
- echo -n "decompressing FFTW... "
- unpack_file fftw-3.1.2.tar.gz
- echo "done"
- echo -n "compiling FFTW ..."
- (cd "$DOWNLOAD_DIR/fftw-3.1.2" &&
- create_module_rc FFTW 3.1.2 libfftw3-3.dll "FFTW (www.fftw.org)" \
- "FFTW - Discrete Fourier Transform Computation Library" \
- "Copyright (c) 2003, 2006 Massachusetts Institute of Technology" > fftw.rc &&
- CC=cc-msvc CFLAGS="-O2 -MD" CXX=cc-msvc CXXFLAGS="-O2 -MD" FC=fc-msvc FCFLAGS="-O2 -MD" \
- F77=fc-msvc FFLAGS="-O2 -MD" CPPFLAGS="-DWIN32 -D_WIN32" AR=ar-msvc RANLIB=ranlib-msvc \
- ./configure --prefix="$tdir_w32_forward" --enable-shared --disable-static \
- --enable-sse2 &&
- post_process_libtool &&
- sed -e 's/^libfftw3_la_LDFLAGS =/libfftw3_la_LDFLAGS = -Wl,fftw.res -Wl,-def:fftw.def/' \
- -e 's/^libfftw3\.la:/libfftw3.la: fftw.res fftw.def/' Makefile > ttt &&
- mv ttt Makefile &&
- (cat >> Makefile <<\EOF
- fftw.res: fftw.rc
- rc -fo $@ $<
- fftw.def: $(libfftw3_la_OBJECTS) $(libfftw3_la_LIBADD)
- @echo "Generating $@..."
- @echo "EXPORTS" > $@
- @sublibs=; for lib in $(libfftw3_la_LIBADD); do \
- sublibs="$$sublibs `dirname $$lib`/.libs/`sed -n -e "s/old_library='\(.*\)'/\1/p" $$lib`"; \
- done;\
- nm $(addprefix .libs/, $(libfftw3_la_OBJECTS:.lo=.o)) $$sublibs | \
- grep -v -e ' R __real@[0-9a-fA-F]\+' | \
- sed -n -e 's/^[0-9a-fA-F]\+ T _\([^ ]*\).*$$/\1/p' \
- -e 's/^[0-9a-fA-F]\+ [BDGSR] _\([^ ]*\).*$$/\1 DATA/p' >> $@
- EOF
- ) &&
- sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' tools/Makefile > ttt &&
- mv ttt tools/Makefile &&
- sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' \
- -e 's/^DEFS =/DEFS = -DFFTW_DLL/' tests/Makefile > ttt &&
- mv ttt tests/Makefile &&
- sed -e 's/^AR =.*$/AR = ar/' libbench2/Makefile > ttt &&
- mv ttt libbench2/Makefile &&
- make &&
- make install &&
- rm -f $tlibdir_quoted/libfftw3.la) >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/fftw-3.1.2"
- if failed_package|| test ! -f "$tbindir/libfftw3-3.dll"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- if check_package fftwf; then
- download_file fftw-3.1.2.tar.gz ftp://ftp.fftw.org/pub/fftw/fftw-3.1.2.tar.gz
- echo -n "decompressing FFTW... "
- unpack_file fftw-3.1.2.tar.gz
- echo "done"
- echo -n "compiling FFTW (float)..."
- (cd "$DOWNLOAD_DIR/fftw-3.1.2" &&
- create_module_rc FFTW 3.1.2 libfftw3f-3.dll "FFTW (www.fftw.org)" \
- "FFTW - Discrete Fourier Transform Computation Library (float precision)" \
- "Copyright (c) 2003, 2006 Massachusetts Institute of Technology" > fftwf.rc &&
- CC=cc-msvc CFLAGS="-O2 -MD" CXX=cc-msvc CXXFLAGS="-O2 -MD" FC=fc-msvc FCFLAGS="-O2 -MD" \
- F77=fc-msvc FFLAGS="-O2 -MD" CPPFLAGS="-DWIN32 -D_WIN32" AR=ar-msvc RANLIB=ranlib-msvc \
- ./configure --prefix="$tdir_w32_forward" --enable-shared --disable-static \
- --enable-sse --enable-float &&
- post_process_libtool &&
- sed -e 's/^libfftw3f_la_LDFLAGS =/libfftw3f_la_LDFLAGS = -Wl,fftwf.res -Wl,-def:fftwf.def/' \
- -e 's/^libfftw3f\.la:/libfftw3f.la: fftwf.res fftwf.def/' Makefile > ttt &&
- mv ttt Makefile &&
- (cat >> Makefile <<\EOF
- fftwf.res: fftwf.rc
- rc -fo $@ $<
- fftwf.def: $(libfftw3f_la_OBJECTS) $(libfftw3f_la_LIBADD)
- @echo "Generating $@..."
- @echo "EXPORTS" > $@
- @sublibs=; for lib in $(libfftw3f_la_LIBADD); do \
- sublibs="$$sublibs `dirname $$lib`/.libs/`sed -n -e "s/old_library='\(.*\)'/\1/p" $$lib`"; \
- done;\
- nm $(addprefix .libs/, $(libfftw3f_la_OBJECTS:.lo=.o)) $$sublibs | \
- grep -v -e ' R __real@[0-9a-fA-F]\+' | \
- sed -n -e 's/^[0-9a-fA-F]\+ T _\([^ ]*\).*$$/\1/p' \
- -e 's/^[0-9a-fA-F]\+ [BDGSR] _\([^ ]*\).*$$/\1 DATA/p' >> $@
- EOF
- ) &&
- sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' tools/Makefile > ttt &&
- mv ttt tools/Makefile &&
- sed -e 's/^LDFLAGS =/LDFLAGS = -Wl,-subsystem:console/' \
- -e 's/^DEFS =/DEFS = -DFFTW_DLL/' tests/Makefile > ttt &&
- mv ttt tests/Makefile &&
- sed -e 's/^AR =.*$/AR = ar/' libbench2/Makefile > ttt &&
- mv ttt libbench2/Makefile &&
- make &&
- make install &&
- rm -f $tlibdir_quoted/libfftw3f.la) >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/fftw-3.1.2"
- if failed_package|| test ! -f "$tbindir/libfftw3f-3.dll"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ########
- # GLPK #
- ########
- if check_package GLPK; then
- download_file glpk-$glpkver.tar.gz ftp://ftp.gnu.org/gnu/glpk/glpk-$glpkver.tar.gz
- echo -n "decompressing GLPK... "
- unpack_file glpk-$glpkver.tar.gz
- echo "done"
- echo -n "compiling GLPK... "
- (cd "$DOWNLOAD_DIR/glpk-$glpkver" &&
- glpk_company="GNU <www.gnu.org>" &&
- glpk_desc=`grep -e '^DESCRIPTION' w32/glpk_*.def | sed -e 's/^DESCRIPTION \+//' -e 's/"//g'` &&
- glpk_copyright=`grep -e '^Copyright' README | head -n 1 | sed -e 's/,$//'` &&
- create_module_rc GLPK $glpkver glpk.dll "$glpk_company" "$glpk_desc" "$glpk_copyright" > src/glpk.rc &&
- CC=cc-msvc CFLAGS="-O2 -MD" CXX=cc-msvc CXXFLAGS="-O2 -MD" FC=fc-msvc FCFLAGS="-O2 -MD" \
- F77=fc-msvc FFLAGS="-O2 -MD" CPPFLAGS="-DWIN32 -D_WIN32 -D__STDC__" AR=ar-msvc RANLIB=ranlib-msvc \
- ./configure --prefix="$tdir_w32_forward" --enable-shared --disable-static &&
- post_process_libtool &&
- sed -e 's/^libglpk_la_LDFLAGS =/libglpk_la_LDFLAGS = -Wl,glpk.res -Wl,-def:glpk.def -no-undefined/' \
- -e 's/^libglpk\.la:/libglpk.la: glpk.res glpk.def/' src/Makefile > ttt &&
- mv ttt src/Makefile &&
- (cat >> src/Makefile <<\EOF
- glpk.res: glpk.rc
- rc -fo $@ $<
- glpk.def: $(libglpk_la_OBJECTS)
- @echo "Generating $@..."
- @echo "EXPORTS" > $@
- @nm $(addprefix .libs/, $(libglpk_la_OBJECTS:.lo=.o)) | \
- sed -n -e 's/^[0-9a-fA-F]\+ T _\([^ ]*\).*$$/\1/p' \
- -e 's/^[0-9a-fA-F]\+ [BDGS] _\([^ ]*\).*$$/\1 DATA/p' >> $@
- EOF
- ) &&
- make &&
- make install &&
- rm -f $tlibdir_quoted/libglpk.la) >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/glpk-$glpkver"
- if failed_package || test ! -f "$tlibdir/glpk.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ###########
- # ncurses #
- ###########
- if check_package ncurses; then
- download_file ncurses-5.6.tar.gz ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.6.tar.gz
- echo -n "decompressing ncurses... "
- unpack_file ncurses-5.6.tar.gz
- cp libs/ncurses-5.6.diff "$DOWNLOAD_DIR/ncurses-5.6"
- echo "done"
- echo "compiling ncurses... "
- (cd "$DOWNLOAD_DIR/ncurses-5.6" &&
- patch -p1 < ncurses-5.6.diff &&
- ncurses_copyright=`grep -e '^-- Copyright' README | head -n 1 | sed -e "s/-- //" -e "s/ *--$//"` &&
- create_module_rc Ncurses 5.6 ncurses.dll "Free Software Foundation (http://www.fsf.org)" \
- "GNU New Curses Library" "$ncurses_copyright" > ncurses/ncurses.rc &&
- CC=cc-msvc CXX=cc-msvc AR=ar-msvc RANLIB=ranlib-msvc CFLAGS="-O2 -MD" \
- CXXFLAGS="-O2 -MD -EHs" CPPFLAGS="-DWIN32 -D_WIN32" \
- ./configure --build=i686-pc-msdosmsvc --prefix=$INSTALL_DIR --without-cxx-binding \
- --without-libtool --with-shared --without-normal --without-debug &&
- sed -e "s/^SHARED_OBJS =/SHARED_OBJS = ncurses.res/" ncurses/Makefile > ttt &&
- mv ttt ncurses/Makefile &&
- echo "ncurses.res: ncurses.rc" >> ncurses/Makefile &&
- echo " rc -fo \$@ \$<" >> ncurses/Makefile &&
- make -C include && make -C ncurses && make -C progs && make -C tack && make -C misc &&
- make -C include install && make -C ncurses install && make -C progs install &&
- make -C tack install && make -C misc install) >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/ncurses-5.6"
- if failed_package || test ! -f "$tlibdir/ncurses.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ############
- # readline #
- ############
- if check_package readline; then
- download_file readline-5.2.tar.gz ftp://ftp.gnu.org/gnu/readline/readline-5.2.tar.gz
- echo -n "decompressing readline... "
- (cd "$DOWNLOAD_DIR" && tar xfz readline-5.2.tar.gz)
- cp libs/readline-5.2.diff "$DOWNLOAD_DIR/readline-5.2"
- echo "done"
- echo "compiling readline... "
- (cd "$DOWNLOAD_DIR/readline-5.2" &&
- patch -p1 < readline-5.2.diff &&
- rl_copyright=`grep -e '^/\* \+Copyright' readline.c | sed -e "s,/\* \+,,"` &&
- create_module_rc Readline 5.2 readline.dll "Free Software Foundation (http://www.fsf.org)" \
- "GNU Readline Library" "$rl_copyright" > readline.rc &&
- sed -e "s/^SHARED_OBJ =/SHARED_OBJ = readline.res/" shlib/Makefile.in > ttt &&
- mv ttt shlib/Makefile.in &&
- echo "readline.res: readline.rc" >> shlib/Makefile.in &&
- echo " rc -fo \$@ \$<" >> shlib/Makefile.in &&
- configure_package --build=i686-pc-msdosmsvc &&
- make shared &&
- make install-shared &&
- cp shlib/*readline*.lib "$tlibdir/readline.lib" &&
- cp shlib/*history*.lib "$tlibdir/history.lib"&&
- mv $tlibdir_quoted/*readline*.dll $tlibdir_quoted/*history*.dll "$tbindir") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/readline-5.2"
- if failed_package || test ! -f "$tlibdir/readline.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ########
- # zlib #
- ########
- if check_package zlib; then
- download_file zlib123.zip http://www.zlib.net/zlib123.zip
- echo -n "decompressing zlib... "
- (cd "$DOWNLOAD_DIR" && mkdir zlib && cd zlib && unzip -q ../zlib123.zip)
- echo "done"
- echo -n "compiling zlib... "
- (cd "$DOWNLOAD_DIR/zlib" &&
- sed -e 's/^STATICLIB *=.*$/STATICLIB = zlib-static.lib/' -e 's/^IMPLIB *=.*$/IMPLIB = zlib.lib/' win32/Makefile.msc > ttt &&
- mv ttt win32/Makefile.msc &&
- sed -e 's/1,2,2,0/1,2,3,0/' win32/zlib1.rc > ttt &&
- mv ttt win32/zlib1.rc &&
- nmake -f win32\\Makefile.msc &&
- mt -outputresource:zlib1.dll -manifest zlib1.dll.manifest &&
- cp zlib1.dll "$tbindir" &&
- cp zlib.lib "$tlibdir" &&
- cp zlib.lib "$tlibdir/z.lib" &&
- cp zlib.h zconf.h "$tincludedir") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/zlib"
- if failed_package || test ! -f "$tbindir/zlib1.dll"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ###############
- # SuiteSparse #
- ###############
- if check_package SuiteSparse; then
- download_file SuiteSparse-3.0.0.tar.gz http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-3.0.0.tar.gz
- echo -n "decompressing SuiteSparse... "
- unpack_file SuiteSparse-3.0.0.tar.gz
- cp libs/suitesparse-3.0.0.diff "$DOWNLOAD_DIR/SuiteSparse"
- echo "done"
- echo "compiling SuiteSpase... "
- (cd "$DOWNLOAD_DIR/SuiteSparse" &&
- patch -p1 < suitesparse-3.0.0.diff &&
- make &&
- make install INSTDIR="$INSTALL_DIR") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/SuiteSparse"
- if failed_package || test ! -f "$tlibdir/cxsparse.lib" -o ! -d "$tincludedir/suitesparse"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ########
- # HDF5 #
- ########
- if check_package HDF5; then
- download_file hdf5-$hdf5ver.tar.gz ftp://ftp.hdfgroup.org/HDF5/current/src/hdf5-$hdf5ver.tar.gz
- echo -n "decompressing HDF5... "
- unpack_file hdf5-$hdf5ver.tar.gz
- echo "done"
- echo -n "compiling HDF5... "
- (cd "$DOWNLOAD_DIR/hdf5-$hdf5ver" &&
- if false; then
- patch -p1 < hdf5.diff &&
- cd proj/hdf5dll &&
- vcbuild -upgrade hdf5dll.vcproj &&
- vcbuild -u hdf5dll.vcproj "Release|Win32" &&
- cp Release/hdf5.lib "$tlibdir" &&
- cp Release/hdf5.dll "$tbindir" &&
- cp ../../COPYING "$tlicdir/COPYING.HDF5" &&
- cd ../../src &&
- cp H5public.h H5Apublic.h H5ACpublic.h H5Bpublic.h H5Cpublic.h \
- H5Dpublic.h H5Epublic.h H5Fpublic.h H5FDpublic.h H5FDcore.h H5FDfamily.h \
- H5FDgass.h H5FDlog.h H5FDmpi.h H5FDmpio.h H5FDmpiposix.h \
- H5FDmulti.h H5FDsec2.h H5FDsrb.h H5FDstdio.h H5FDstream.h \
- H5Gpublic.h H5HGpublic.h H5HLpublic.h H5Ipublic.h \
- H5MMpublic.h H5Opublic.h H5Ppublic.h H5Rpublic.h H5Spublic.h \
- H5Tpublic.h H5Zpublic.h H5pubconf.h hdf5.h H5api_adpt.h "$tincludedir"
- else
- create_module_rc HDF5 $hdf5ver libhdf5-0.dll "University of Illinois" \
- "NCSA Hierarchical Data Format (HDF) Library" \
- "Copyright by the Board of Trustees of the University of Illinois." > src/hdf5.rc &&
- W_CPPFLAGS="$W_CPPFLAGS -D_HDF5DLL_" \
- configure_package --enable-shared --disable-static &&
- post_process_libtool &&
- #sed -e '/^postinstall_cmds=/ {s/\$name/\\$name/; s/\$implibname/\\$implibname/;}' libtool > ttt
- # mv ttt libtool &&
- sed -e 's/\$(LIB)/$(HLIB)/g' \
- -e 's/^LIB=/HLIB=/g' \
- -e 's/^LIBS=.*$/& -lws2_32/' \
- -e 's,\$(libdir)/\.,$(libdir),' \
- -e 's/^LDFLAGS=/LDFLAGS= -no-undefined -Wl,hdf5.res/' src/Makefile > ttt &&
- mv ttt src/Makefile &&
- sed -e '/^#ifdef \+H5_HAVE_STREAM.*$/ {p; c\
- #define EWOULDBLOCK WSAEWOULDBLOCK
- ;}' src/H5FDstream.c > ttt &&
- mv ttt src/H5FDstream.c &&
- echo "#define HDsetvbuf(A,B,C,D) (((D)>1)?setvbuf(A,B,C,D):setvbuf(A,B,C,2))" >> src/H5pubconf.h &&
- echo "#define ssize_t long" >> src/H5pubconf.h &&
- cd src
- rc -fo hdf5.res hdf5.rc &&
- make &&
- make install &&
- cp ../COPYING "$tlicdir/COPYING.HDF5" &&
- rm -f $tlibdir_quoted/libhdf5.la
- fi) >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/hdf5-$hdf5ver"
- if failed_package || test ! -f "$tlibdir/hdf5.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ########
- # glob #
- ########
- if check_package glob; then
- if test ! -f "$DOWNLOAD_DIR/glob.tar.gz"; then
- echo "glob library is not downloadable and should already be present in $DOWNLOAD_DIR"
- exit -1
- fi
- echo -n "decompressing glob... "
- (cd "$DOWNLOAD_DIR" && tar xfz glob.tar.gz)
- echo "done"
- echo -n "compiling glob... "
- (cd "$DOWNLOAD_DIR/glob" &&
- autoconf && autoheader &&
- ./configure.vc &&
- make &&
- cp glob.lib "$tlibdir" &&
- cp fnmatch.h glob.h "$tincludedir") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/glob"
- if failed_package || test ! -f "$tlibdir/glob.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ##########
- # libpng #
- ##########
- if check_package libpng; then
- if false; then
- pngver=`echo $libpngver | sed -e "s/\.//g"`
- download_file lpng$pngver.zip ftp://ftp.simplesystems.org/pub/libpng/png/src/lpng$pngver.zip
- echo -n "decompressing libpng... "
- (cd "$DOWNLOAD_DIR" && unzip -q lpng$pngver.zip)
- echo "done"
- echo -n "compiling libpng... "
- (cd "$DOWNLOAD_DIR/lpng$pngver/projects/visualc71" &&
- sed -e 's/{2D4F8105-7D21-454C-9932-B47CAB71A5C0} = {2D4F8105-7D21-454C-9932-B47CAB71A5C0}//' libpng.sln > ttt &&
- mv ttt libpng.sln &&
- sed -e "s/\([ ]*\)AdditionalIncludeDirectories=\".*\"$/\1AdditionalIncludeDirectories=\"..\\\\..;$tdir_w32\\\\include\"/" \
- -e "s/\([ ]*\)Name=\"VCLinkerTool\".*$/\1Name=\"VCLinkerTool\"\\
- AdditionalDependencies=\"zlib.lib\"\\
- ImportLibrary=\"\$(TargetDir)png.lib\"\\
- AdditionalLibraryDirectories=\"$tdir_w32\\\\lib\"/" libpng.vcproj > ttt &&
- mv ttt libpng.vcproj &&
- sed -e "s/^ *; *png_get_libpng_ver/ png_get_libpng_ver/" ../../scripts/pngw32.def > ttt &&
- mv ttt ../../scripts/pngw32.def &&
- vcbuild -upgrade libpng.vcproj &&
- vcbuild -u libpng.vcproj 'DLL Release|Win32' &&
- sed -e "s,^prefix=.*$,prefix=$tdir_w32_forward," \
- -e "s,@exec_prefix@,\${prefix}," \
- -e "s,@libdir@,\${exec_prefix}/lib," \
- -e "s,^includedir=.*$,includedir=\${prefix}/include," \
- -e "s,-lpng[0-9]\+,-lpng," ../../scripts/libpng.pc.in > libpng.pc &&
- cp Win32_DLL_Release/libpng*.dll "$tbindir" &&
- cp Win32_DLL_Release/png.lib "$tlibdir" &&
- cp ../../png.h ../../pngconf.h "$tincludedir" &&
- mkdir -p "$tlibdir/pkgconfig" &&
- cp libpng.pc "$tlibdir/pkgconfig" &&
- cp libpng.pc "$tlibdir/pkgconfig/libpng12.pc") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/lpng$pngver"
- else
- download_file libpng-$libpngver.tar.bz2 ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng-$libpngver.tar.bz2
- echo -n "decompressing libpng... "
- unpack_file libpng-$libpngver.tar.bz2
- echo "done"
- echo -n "compiling libpng... "
- (cd "$DOWNLOAD_DIR/libpng-$libpngver" &&
- ac_cv_func_memset=yes ac_cv_func_pow=yes \
- configure_package --disable-static --enable-shared --without-libpng-compat &&
- post_process_libtool &&
- sed -e 's/^libpng12_la_LDFLAGS =/& -export-symbols-regex "^png_.*" -Wl,scripts\/pngw32.res/' Makefile > ttt &&
- mv ttt Makefile &&
- (cd scripts && rc -fo pngw32.res pngw32.rc) &&
- make &&
- make install &&
- rm -rf $tlibdir_quoted/libpng*.la &&
- cp "$tlibdir/png12.lib" "$tlibdir/png.lib") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/libpng-$libpngver"
- fi
- if failed_package || test ! -f "$tlibdir/png.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ##########
- # ARPACK #
- ##########
- if check_package ARPACK; then
- download_file arpack96.tar.gz http://www.caam.rice.edu/software/ARPACK/SRC/arpack96.tar.gz
- download_file patch.tar.gz http://www.caam.rice.edu/software/ARPACK/SRC/patch.tar.gz
- echo -n "decompressing ARPACK... "
- unpack_file arpack96.tar.gz
- unpack_file patch.tar.gz
- cp libs/arpack.makefile "$DOWNLOAD_DIR/ARPACK"
- echo "done"
- echo -n "compiling ARPACK... "
- (cd "$DOWNLOAD_DIR/ARPACK" &&
- sed -e "s/^OBJECTS =/OBJECTS = arpack.res/" arpack.makefile > ttt &&
- mv ttt arpack.makefile &&
- echo "arpack.res: arpack.rc" >> arpack.makefile &&
- echo " rc -fo \$@ \$<" >> arpack.makefile &&
- create_module_rc ARPACK 96.0 arpack.dll "Rice University (http://www.caam.rice.edu)" \
- "ARPACK Library for Large-Scale Eigenvalues Problems" "Copyright () 2001, Rice University" > arpack.rc &&
- make -f arpack.makefile &&
- cp libarpack.dll "$tbindir" &&
- cp arpack.lib "$tlibdir") >&5 2>&1 && end_package
- remove_package "$DOWNLOAD_DIR/ARPACK"
- wget $WGET_FLAGS -O "$tlicdir/COPYING.ARPACK.doc" http://www.caam.rice.edu/software/ARPACK/RiceBSD.doc
- if failed_package || test ! -f "$tlibdir/arpack.lib"; then
- echo "failed"
- exit -1
- else
- echo "done"
- fi
- fi
- ###########
- # libjpeg #
- ###########
- #if check_package libjpeg; then
- # download_file jpeg-6b-4-src.zip 'http://downloads.sourceforge.net/gnuwin32/jpeg-6b-4-src.zip?modtime=1116176612&big_mirror=0'
- # echo -n "decompressing libjpeg... "
- # (cd "$DOWNLOAD_DIR" && mkdir jpeg && cd jpeg && unzip -q ../jpeg-6b-4-src.zip)
- # cp libs/libjpeg-6b.diff "$DOWNLOAD_DIR/jpeg"
- # echo "done"
- # (cd "$DOWNLOAD_DIR/jpeg" &&
- # patch -p1 < libjpeg-6b.diff &&
- # cd src/jpeg/6b/jpeg-6b-src &&
- # nmake -f makefile.vc nodebug=1 &&
- # cp jpeg6b.dll "$tbindir" &&
- # cp jpeg.lib "$tlibdir" &&
- # cp jconfig.h jerror.h jmorecfg.h jpeglib.h "$tincludedir") >&5 2>&1
- # rm -rf "$DOWNLOAD_DIR/jpeg"
- # if test ! -f "$tbindir/jpeg6b.dll"; then
- # echo "failed"
- # exit -1
- # else
- # echo "done"
- # fi
- #fi
- if check_package libjpeg; then
- download_file jpegsrc.v6b.tar.gz ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz
- echo -n "decompressing libjpeg... "
- unpack_file jpegsrc.v6b.tar.gz
- echo "done"
- (cd "$DOWNLOAD_DIR/jpeg-6b" &&
- create_module_rc Libjpeg 6.2 libjpeg-62.dll "Independent JPEG Group <www.ijg.org>" \
- "Libjpeg - Library and Tools for JPEG Images" " `date +%Y` Independent JPEG Group <www.ijg.org>" > jpeg.rc &&
- CPP="/mingw/bin/cpp" \
- configure_package --enable-shared --disable-static &&
- sed -e 's/libjpeg\.la:.*$/& jpeg.def jpeg.res/' Makefile > ttt &&
- mv ttt Makefile &&
- (cat >> Makefile <<\EOF
- jpeg.res: jpeg.rc
- rc -fo $@ $<
- jpeg.def: $(LIBOBJECTS)
- echo "EXPORTS" > $@
- nm $(LIBOBJECTS) | sed -n -e 's/^.* T _\(.*\)$$/\1/p' >> $@
- EOF
- ) &&
- sed -e 's/^build_libtool_libs=.*$/build_libtool_libs=yes/' \
- -e 's/^build_old_libs=.*$/build_old_libs=no/' \
- -e 's/^version_type=.*$/version_type=windows/' \
- -e 's/^library_names_spec=.*$/library_names_spec="lib\\$name-\\$versuffix.dll"/' \
- -e '/^[ ]*case "\$version_type" in.*$/ {p;i\
- windows)\
- major=`expr $current - $age`\
- versuffix="$major"\
- ;;
- ;d;}' \
- -e 's/^hardcode_libdir_flag_spec=.*$/hardcode_libdir_flag_spec=""/' \
- -e 's/^archive_cmds=.*$/archive_cmds="\\$CC -shared -o \\$lib\\$libobjs -Wl,-def:jpeg.def -Wl,jpeg.res"/' \
- libtool > ttt &&
- mv ttt libtool &&
- (cat >> jconfig.h <<\EOF
- #include <windows.h>
- #ifndef __RPCNDR_H__
- typedef unsigned char boolean;
- #endif
- #define HAVE_BOOLE…
Large files files are truncated, but you can click here to view the full file