From 7b32c84a81b8d413eefd7756470fe3a893f75901 Mon Sep 17 00:00:00 2001 From: Andy Spencer Date: Mon, 28 Jan 2013 06:38:45 +0000 Subject: [PATCH] Misc win32 updates, add suse builds --- mac/Makefile | 2 +- win/Makefile | 6 +- win/setup-mingw-2.24.sh | 73 +++++++++++++++------- win/setup-mingw-3.6.sh | 40 ++++++------ win/setup-mingw-suse.sh | 132 ++++++++++++++++++++++++++++++++++++++++ 5 files changed, 207 insertions(+), 46 deletions(-) create mode 100755 win/setup-mingw-suse.sh diff --git a/mac/Makefile b/mac/Makefile index 08b2e30..8de171a 100644 --- a/mac/Makefile +++ b/mac/Makefile @@ -30,7 +30,7 @@ $(DESTDIR): $(MAC_AWEATHER)/src/aweather \ make -C $(MAC_RSL) install find $(DESTDIR) -name '*.a' -delete find $(DESTDIR) -name '*.la' -delete - rm -rf $(DESTDIR)/share/rsl/colors + rm -rf $(DESTDIR)/share/rsl1/colors rm -rf $(DESTDIR)/include touch $@ diff --git a/win/Makefile b/win/Makefile index b71694e..2b3846c 100644 --- a/win/Makefile +++ b/win/Makefile @@ -31,9 +31,9 @@ $(INSTALLERS): $(DESTDIR) aweather-gen: cd $(WIN_AWEATHER); \ PKG_CONFIG_PATH="$(WIN_GRITS)/src" \ - CPPFLAGS="-I$(WIN_GRITS)/include/grits" \ - LIBS="-L$(WIN_GRITS)/src/.libs" \ - CFLAGS="-g -Werror -Wno-unused -O3" \ + LDFLAGS="-L$(WIN_GRITS)/src/.libs -L$(WIN_RSL)/src/.libs" \ + CPPFLAGS="-I$(WIN_GRITS)/include/grits -I$(WIN_RSL)/src" \ + CFLAGS="-g -Wno-unused -O3" \ ./autogen.sh \ --enable-relative \ --enable-shared \ diff --git a/win/setup-mingw-2.24.sh b/win/setup-mingw-2.24.sh index 6ef4169..d52cedd 100755 --- a/win/setup-mingw-2.24.sh +++ b/win/setup-mingw-2.24.sh @@ -22,24 +22,53 @@ function extract { rm -rf "$tmp" } +# Install custom programs +# grits - DESTDIR=/usr/$MINGW make install +# rsl - DESTDIR=/usr/$MINGW make install +# aweather - DESTDIR=/usr/$MINGW make install + +# Download locations +GTK2_URI='http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.10-20120208_win32.zip' +SOUP_BIN='http://ftp.gnome.org/pub/gnome/binaries/win32/libsoup/2.26/libsoup_2.26.3-1_win32.zip' +SOUP_DEV='http://ftp.gnome.org/pub/gnome/binaries/win32/libsoup/2.26/libsoup-dev_2.26.3-1_win32.zip' +BZIP_BIN='http://downloads.sourceforge.net/project/gnuwin32/bzip2/1.0.5/bzip2-1.0.5-bin.zip' +BZIP_DEV='http://downloads.sourceforge.net/project/gnuwin32/bzip2/1.0.5/bzip2-1.0.5-lib.zip' +ICNV_URI='http://www.xmlsoft.org/sources/win32/iconv-1.9.2.win32.zip' +XML2_URI='http://www.xmlsoft.org/sources/win32/libxml2-2.7.8.win32.zip' +GLUT_URI='http://files.transmissionzero.co.uk/software/development/GLUT/freeglut-MinGW-2.8.0-1.mp.zip' + # Install locations -MINGW=i486-mingw32 -DEV=/usr/$MINGW/usr -BIN=/scratch/aweather-win32/local/gtk/gtk-2.24 -EXT=/home/andy/b/scratch/aweather/local/extern +GCC="mingw32-gcc" +CLEAN="/usr/mingw32-clean" +PKGS="/home/andy/src/aweather-win32/local/packages" +DEV="/usr/mingw32-2.24" +BIN="/home/andy/src/aweather-win32/local/gtk-2.24" + +# Create download dir, if needed +mkdir -p $PKGS -# Copy clean folder -rsync -a /usr/$MINGW-clean/ "$DEV/" +# Download packages +wget -O "$PKGS/$(basename $GTK2_URI)" "$GTK2_URI" +wget -O "$PKGS/$(basename $SOUP_BIN)" "$SOUP_BIN" +wget -O "$PKGS/$(basename $SOUP_DEV)" "$SOUP_DEV" +wget -O "$PKGS/$(basename $BZIP_BIN)" "$BZIP_BIN" +wget -O "$PKGS/$(basename $BZIP_DEV)" "$BZIP_DEV" +wget -O "$PKGS/$(basename $ICNV_URI)" "$ICNV_URI" +wget -O "$PKGS/$(basename $XML2_URI)" "$XML2_URI" +wget -O "$PKGS/$(basename $GLUT_URI)" "$GLUT_URI" + +# Setup dev folder +rsync -a --delete "$CLEAN/" "$DEV/" # Extract packages -extract -bdx $EXT/gtk+-bundle_2.24.8-20111122_win32.zip -extract -bd $EXT/iconv-1.9.2.win32.zip -extract -bd $EXT/libxml2-2.7.6.win32.zip -extract -bx $EXT/libsoup_2.26.3-1_win32.zip -extract -dx $EXT/libsoup-dev_2.26.3-1_win32.zip -extract -bx $EXT/bzip2-1.0.5-bin.zip -extract -dx $EXT/bzip2-1.0.5-lib.zip -extract -dx $EXT/freeglut-MinGW-2.8.0-1.mp.zip +extract -bdx "$PKGS/$(basename $GTK2_URI)" +extract -bdx "$PKGS/$(basename $SOUP_BIN)" +extract -dx "$PKGS/$(basename $SOUP_DEV)" +extract -bdx "$PKGS/$(basename $BZIP_BIN)" +extract -dx "$PKGS/$(basename $BZIP_DEV)" +extract -bd "$PKGS/$(basename $ICNV_URI)" +extract -bd "$PKGS/$(basename $XML2_URI)" +extract -dx "$PKGS/$(basename $GLUT_URI)" # Cleanup install folders rm -f $DEV/lib/*.la @@ -58,19 +87,17 @@ find "$BIN/bin/" "$BIN/lib/" -type f \ -exec strip -s "{}" ";" find "$BIN" -type d -delete 2>/dev/null +# Working xdg-open +$GCC -Wall -mwindows -o $BIN/bin/xdg-open.exe xdg-open.c + # Fix broken packages cp /usr/lib/pkgconfig/libxml-2.0.pc $DEV/lib/pkgconfig rename libxml2.dll libxml2-2.dll {$DEV,$BIN}/bin/* -$MINGW-gcc -Wall -mwindows -o $BIN/bin/xdg-open.exe xdg-open.c -cp gtkrc $BIN/etc/gtk-2.0/gtkrc +# Custom settings +mkdir -p $BIN/etc/{gtk-2.0,pango} +cp gtkrc2 $BIN/etc/gtk-2.0/gtkrc cp pango.aliases $BIN/etc/pango/pango.aliases # Fix pkg-config -sed -i 's!^prefix=.*!prefix=/usr/'$MINGW'/usr!' \ - $DEV/lib/pkgconfig/*.pc - -# Install custom programs -# grits - DESTDIR=/usr/$MINGW make install -# rsl - DESTDIR=/usr/$MINGW make install -# aweather - DESTDIR=/usr/$MINGW make install +sed -i "s!^prefix=.*!prefix=$DEV!" $DEV/lib/pkgconfig/*.pc diff --git a/win/setup-mingw-3.6.sh b/win/setup-mingw-3.6.sh index 101d58c..f8e5a6c 100755 --- a/win/setup-mingw-3.6.sh +++ b/win/setup-mingw-3.6.sh @@ -28,7 +28,7 @@ function extract { # aweather - DESTDIR=/usr/$MINGW make install # Download locations -GTK_URI='http://www.tarnyko.net/repo/GTK+-Bundle-3.6.1_(TARNYKO).exe' +GTK3_URI='http://www.tarnyko.net/repo/GTK+-Bundle-3.6.1_(TARNYKO).exe' SOUP_BIN='http://ftp.gnome.org/pub/gnome/binaries/win32/libsoup/2.26/libsoup_2.26.3-1_win32.zip' SOUP_DEV='http://ftp.gnome.org/pub/gnome/binaries/win32/libsoup/2.26/libsoup-dev_2.26.3-1_win32.zip' BZIP_BIN='http://downloads.sourceforge.net/project/gnuwin32/bzip2/1.0.5/bzip2-1.0.5-bin.zip' @@ -36,35 +36,37 @@ BZIP_DEV='http://downloads.sourceforge.net/project/gnuwin32/bzip2/1.0.5/bzip2-1. # Install locations GCC="mingw32-gcc" -DEV="/usr/mingw32" CLEAN="/usr/mingw32-clean" -BIN="/home/andy/src/aweather-win32/local/gtk-3.6.1" -EXT="/home/andy/src/aweather-win32/local/packages" -GTK="/home/andy/.wine/drive_c/Program Files (x86)/GTK+-Bundle-3.6.1" +PKGS="/home/andy/src/aweather-win32/local/packages" +WINE="/home/andy/.wine/drive_c/Program Files (x86)/GTK+-Bundle-3.6.1" +DEV="/usr/mingw32-3.6" +BIN="/home/andy/src/aweather-win32/local/gtk-3.6" # Create download dir, if needed -mkdir -p $EXT +mkdir -p $PKGS # Download packages -wget -O "$EXT/$(basename $GTK_URI)" "$GTK_URI" -wget -O "$EXT/$(basename $SOUP_BIN)" "$SOUP_BIN" -wget -O "$EXT/$(basename $SOUP_DEV)" "$SOUP_DEV" -wget -O "$EXT/$(basename $BZIP_BIN)" "$BZIP_BIN" -wget -O "$EXT/$(basename $BZIP_DEV)" "$BZIP_DEV" +wget -O "$PKGS/$(basename $GTK3_URI)" "$GTK3_URI" +wget -O "$PKGS/$(basename $SOUP_BIN)" "$SOUP_BIN" +wget -O "$PKGS/$(basename $SOUP_DEV)" "$SOUP_DEV" +wget -O "$PKGS/$(basename $BZIP_BIN)" "$BZIP_BIN" +wget -O "$PKGS/$(basename $BZIP_DEV)" "$BZIP_DEV" + +# Setup dev folder +rsync -a --delete "$CLEAN/" "$DEV/" # Install GTK Bundle wine extern/gtk-3.6.1-dev.exe -# Setup dev folder -rsync -a --delete "$CLEAN/" "$DEV/" -rsync -a "$GTK/" "$DEV/" -rsync -a --delete "$GTK/" "$BIN/" +# Copy GTK Bundle +rsync -a "$WINE/" "$DEV/" +rsync -a --delete "$WINE/" "$BIN/" # Extract packages -extract -bdx "$EXT/$(basename $SOUP_BIN)" -extract -dx "$EXT/$(basename $SOUP_DEV)" -extract -bdx "$EXT/$(basename $BZIP_BIN)" -extract -dx "$EXT/$(basename $BZIP_DEV)" +extract -bdx "$PKGS/$(basename $SOUP_BIN)" +extract -dx "$PKGS/$(basename $SOUP_DEV)" +extract -bdx "$PKGS/$(basename $BZIP_BIN)" +extract -dx "$PKGS/$(basename $BZIP_DEV)" # Cleanup install folders rm -f $DEV/lib/*.la diff --git a/win/setup-mingw-suse.sh b/win/setup-mingw-suse.sh new file mode 100755 index 0000000..004e252 --- /dev/null +++ b/win/setup-mingw-suse.sh @@ -0,0 +1,132 @@ +#!/bin/bash + +function setup { + # Parse args + bin=false; dev=false; + eval set -- "`getopt -n "$0" -o bdx -l bin,dev -- "$@"`" + while [ ! "$1" == "--" ]; do + case "$1" in + -b|--bin) bin=true ;; + -d|--dev) dev=true ;; + esac + shift + done + url="$SUSE/$2" + rpm="$PKGS/$2" + tar="${rpm/.rpm/.tar.gz}" + + # Create paths + mkdir -p "$PKGS" "$BIN" "$DEV" + + # Download + if [ ! -f "$rpm" ]; then + wget -O "$rpm" "$url" + fi + if [ ! -f "$tar" ]; then + tmp=`mktemp -d` + root="usr/i686-w64-mingw32/sys-root/mingw" + ( cd "$tmp"; rpm2cpio "$rpm" | cpio -id ) + ( cd "$tmp/$root"; tar -caf "$tar" * ) + rm -rf "$tmp" + fi + + # Install + echo "Installing $2" + $dev && tar -xa -C "$DEV" -f "$tar" || true + $bin && tar -xa -C "$BIN" -f "$tar" || true +} + +# Install custom programs +# grits - DESTDIR=/usr/$MINGW make install +# rsl - DESTDIR=/usr/$MINGW make install +# aweather - DESTDIR=/usr/$MINGW make install + +set -e + +# Install locations +GCC="mingw32-gcc" +CLEAN="/usr/mingw32-clean" +SUSE='http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Factory/noarch' +PKGS="/home/andy/src/aweather-win32/local/packages" +DEV="/usr/mingw32-suse" +BIN="/home/andy/src/aweather-win32/local/gtk-suse" + +# Setup dev folder +rsync -a --delete "$CLEAN/" "$DEV/" + +# Install packages +setup -bd "mingw32-zlib-1.2.7-1.116.noarch.rpm" +setup -bd "mingw32-libcairo2-1.10.2-8.116.noarch.rpm" +setup -bd "mingw32-libpng-1.5.11-1.98.noarch.rpm" +setup -bd "mingw32-freetype-2.4.10-1.97.noarch.rpm" +setup -bd "mingw32-fontconfig-2.10.1-1.82.noarch.rpm" +setup -bd "mingw32-libexpat-2.0.1-4.267.noarch.rpm" +setup -bd "mingw32-libbz2-1.0.6-3.254.noarch.rpm" +setup -bd "mingw32-pixman-0.26.0-1.108.noarch.rpm" +setup -bd "mingw32-libsoup-2.38.1-1.110.noarch.rpm" +setup -bd "mingw32-libxml2-2.8.0-2.59.noarch.rpm" +setup -bd "mingw32-libintl-0.18.1.1-13.242.noarch.rpm" +setup -bd "mingw32-libjpeg-8d-3.101.noarch.rpm" +setup -bd "mingw32-libffi-3.0.10-2.203.noarch.rpm" +setup -bd "mingw32-libjasper-1.900.1-6.239.noarch.rpm" +setup -bd "mingw32-libtiff-4.0.2-1.88.noarch.rpm" +setup -bd "mingw32-liblzma-5.0.4-1.92.noarch.rpm" +setup -bd "mingw32-glib2-2.34.1-1.33.noarch.rpm" +setup -bd "mingw32-atk-2.6.0-1.53.noarch.rpm" +setup -bd "mingw32-pango-1.30.1-1.64.noarch.rpm" +setup -bd "mingw32-gdk-pixbuf-2.26.3-1.63.noarch.rpm" +setup -bd "mingw32-gtk2-2.24.14-1.8.noarch.rpm" + +setup -d "mingw32-zlib-devel-1.2.7-1.116.noarch.rpm" +setup -d "mingw32-cairo-devel-1.10.2-8.116.noarch.rpm" +setup -d "mingw32-libpng-devel-1.5.11-1.98.noarch.rpm" +setup -d "mingw32-freetype-devel-2.4.10-1.97.noarch.rpm" +setup -d "mingw32-fontconfig-devel-2.10.1-1.82.noarch.rpm" +setup -d "mingw32-libexpat-devel-2.0.1-4.267.noarch.rpm" +setup -d "mingw32-libbz2-devel-1.0.6-3.254.noarch.rpm" +setup -d "mingw32-pixman-devel-0.26.0-1.108.noarch.rpm" +setup -d "mingw32-libsoup-devel-2.38.1-1.110.noarch.rpm" +setup -d "mingw32-libxml2-devel-2.8.0-2.59.noarch.rpm" +setup -d "mingw32-libintl-devel-0.18.1.1-13.242.noarch.rpm" +setup -d "mingw32-libjpeg-devel-8d-3.101.noarch.rpm" +setup -d "mingw32-libffi-devel-3.0.10-2.203.noarch.rpm" +setup -d "mingw32-libjasper-devel-1.900.1-6.239.noarch.rpm" +setup -d "mingw32-libtiff-devel-4.0.2-1.88.noarch.rpm" +setup -d "mingw32-liblzma-devel-5.0.4-1.92.noarch.rpm" +setup -d "mingw32-glib2-devel-2.34.1-1.33.noarch.rpm" +setup -d "mingw32-atk-devel-2.6.0-1.53.noarch.rpm" +setup -d "mingw32-pango-devel-1.30.1-1.64.noarch.rpm" +setup -d "mingw32-gdk-pixbuf-devel-2.26.3-1.63.noarch.rpm" +setup -d "mingw32-gtk2-devel-2.24.14-1.8.noarch.rpm" + +# Cleanup install folders +echo "Cleaning install folders" +rm -f $DEV/lib/*.la +rm -rf $BIN/{contrib,include,man,manifest,src,*.txt} +rm -rf $BIN/share/{aclocal,glib,gtk,locale,man,doc}* +rm -f $BIN/lib/GNU.Gettext.dll +rm -rf $BIN/etc/bash_completion.d +find "$BIN/bin/" "$BIN/lib/" -type f \ + -and -not -name '*.dll' \ + -and -not -name '*.cache' \ + -and -not -name 'gspawn-*' \ + -delete +find "$BIN/bin/" "$BIN/lib/" -type f \ + -and -not -name 'libxml*dll' \ + -and -not -name 'iconv.dll' \ + -exec strip -s "{}" ";" +find "$BIN" -type d -delete 2>/dev/null || true + +# Working xdg-open +echo "Building xdg-open" +$GCC -Wall -mwindows -o $BIN/bin/xdg-open.exe xdg-open.c + +# Custom settings +echo "Adding custom settings" +mkdir -p $BIN/etc/{gtk-2.0,pango} +cp gtkrc2 $BIN/etc/gtk-2.0/gtkrc +cp pango.aliases $BIN/etc/pango/pango.aliases + +# Fix pkg-config +echo "Fixing pkg-config" +sed -i "s!^prefix=.*!prefix=$DEV!" $DEV/lib/pkgconfig/*.pc -- 2.43.2