Export more variables into 'mpk shell'.
[minipack.git] / tools / mpk-build
blobe3217c291ce35d82ff384c8810666306db350b0f
1 # mpk-build - Build packages.
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 build_source()
21   : ${top_srcdir:=$name-$version}
23   pkg_builddir=$builddir/$name-$version-$release/$top_srcdir
25   if [ ! -d $pkg_builddir ]; then
26     $mpk unpack $pkg
27     if [ $? != 0 -o ! -d $pkg_builddir ]; then
28       echo >&2 "$(basename $0) build: Could not unpack $pkg"
29       exit 1
30     fi
31   fi
32   
33   cd $pkg_builddir
34   
35   src_build && success
38 src_build()
40   do_build
43 src_configure()
45   do_configure
48 src_compile()
50   do_compile
53 src_install()
55   do_install
58 do_build()
60   src_configure || fail
61   src_compile || fail
62   src_install || fail
65 do_configure()
67   setup_configure_options
69   echo "Configuring $pkg..."
70   mkdir -p ../logs
71   ./configure $pkg_configure_opt > ../logs/configure.log
74 do_compile()
76   echo "Compiling $pkg..."
77   mkdir -p ../logs
78   make > ../logs/make.log
81 do_install()
83   echo "Installing $pkg..."
84   mkdir -p ../logs
85   make install > ../logs/install.log
88 fail()
90   echo
91   echo "============="
92   echo "Build failed."
93   echo "============="
94   exit 1
97 success()
99   echo
100   echo "================"
101   echo "Build succeeded."
102   echo "================"
105 if [ -z "$1" ]; then
106   echo "Usage: $(basename $0) build package-name"
107   exit 1
109 pkg=$1
111 if [ -z "$pkg" ]; then
112   echo "Usage: $(basename $0) build package-name ..."
113   exit 1
116 recipe=$(get_recipe_name $pkg) || exit 1
118 . $recipe
120 build_source