summaryrefslogtreecommitdiffstats
path: root/tools/update-gmsl
blob: c633324fedb2a4c705655050ed02b42378e78728 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh
# This file is part of MXE.
# See index.html for further information.
#
# Script to automatically update GNU Make Standard Library
# (http://gmsl.sourceforge.net/)

clean(){
    rm -rf tmp-gmsl.tar.gz gmsl-*
}

# Ported from main Makefile
SED='sed'
SORT='sort'
if [ gsed --help >/dev/null 2>&1 ]; then
    SED='gsed'
fi
if [ gsort --help >/dev/null 2>&1 ]; then
    SED='gsort'
fi
WGET="wget --no-check-certificate
         --user-agent=$(wget --version |
         $SED -n 's,GNU \(Wget\) \([0-9.]*\).*,\1/\2,p')"

# Current GMSL version. E.g. '1.1.5'
current_version=$(grep 'gmsl_version.*=' 'ext/__gmsl' | \
                  cut -d'=' -f2 | $SED -e 's/^ //' -e 's/ *$//' | tr ' ' '.')
# Latest GMSL version fetched from SourceForge
latest_version=$(
    $WGET -q -O- http://sourceforge.net/projects/gmsl/files/GNU%20Make%20Standard%20Library/ | \
    $SED -n 's,.*/v\([0-9][^"]*\)/".*,\1,p' | \
    $SORT -V | \
    tail -1)

clean
if [ $current_version != $latest_version ]; then
    $WGET -q -O tmp-gmsl.tar.gz \
        "http://downloads.sourceforge.net/project/gmsl/GNU%20Make%20Standard%20Library/v${latest_version}/gmsl-${latest_version}.tar.gz"
    tar xzf tmp-gmsl.tar.gz
    rm -f ext/*gmsl doc/gmsl*
    cp -a gmsl-${latest_version}/gmsl ext/
    cp -a gmsl-${latest_version}/__gmsl ext/
    cp -a gmsl-${latest_version}/index.html doc/gmsl.html
    clean
fi