glib: Allow cross-building with native glib 2.24.
[minipack.git] / tools / mpk-unpack
blobe69458c1f5a58ff48958c67fe0cf70e354d56f6d
1 # mpk-unpack - unpacks source code.
2 # Copyright (C) 2008 Cesar Strauss
4 # This file is part of Minipack - an automated build tool.
6 # Minipack is free software: you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation, either version 3 of the License, or
9 # (at your option) any later version.
11 # Minipack is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with Minipack. If not, see <http://www.gnu.org/licenses/>.
19 unpack_source()
21   src_unpack_source
24 src_unpack_source()
26   do_unpack_source
29 do_unpack_source()
31   : ${source_package_type:=tar.gz}
32   : ${source:=$name-$version.$source_package_type}
33   : ${top_srcdir:=$name-$version}
35   buildroot=$builddir/$name-$version-$release
36   
37   if [ -d $buildroot/$top_srcdir ]; then
38     exit 0
39   fi
40   
41   sourcename=$sourcedir/$source
42   if [ ! -e $sourcename ]; then
43     $mpk source $pkg
44     if [ ! -e $sourcename ]; then
45       echo >&2 "$(basename $0) unpack: Could not find source for $pkg"
46       exit 1
47     fi
48   fi
50   mkdir -p $buildroot
51   cd $buildroot
52   
53   echo "Unpacking $pkg..."
55   case $source_package_type in
56     tar.*)
57       tar -xf $sourcename ;;
58     zip)
59       unzip $sourcename ;;
60   esac
62   if [ $? != 0 ]; then
63     echo >&2 "$(basename $0) unpack: Failed to unpack $sourcename"
64     exit 1
65   fi
66   
67   cd ${top_srcdir}
68   
69   pkg_patchdir=$patchdir/$name
70   
71   if [ -d $pkg_patchdir ]; then
72     patches=`find $pkg_patchdir -name '*.patch' | sort`
73     for p in $patches; do
74       patch -p1 -i "$p"
75       if [ $? != 0 ]; then
76         echo >&2 "$(basename $0) unpack: Failed apply patches for $sourcename"
77         exit 1
78       fi
79     done
80   fi
82   src_prep
84   if [ $? != 0 ]; then
85     echo >&2 "$(basename $0) unpack: Failed to prepare build directory for $sourcename"
86     exit 1
87   fi
88   
91 src_prep()
93   do_prep
96 do_prep()
98   :
101 pkg=$1
103 if [ -z "$pkg" ]; then
104   echo "Usage: $(basename $0) unpack package-name ..."
105   exit 1
108 recipe=$(get_recipe_name $pkg) || exit 1
110 . $recipe
112 unpack_source