Bump licence to GPL 3+.
[minipack.git] / tools / mpk-build
blob3ee95db3877d0208c8a9e1ae7ac97a6da51c2edd
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
24   pkg_instdir=$resultdir
26   if [ ! -d $pkg_builddir ]; then
27     $mpk unpack $pkg
28     if [ $? != 0 -o ! -d $pkg_builddir ]; then
29       echo >&2 "$(basename $0) build: Could not unpack $pkg"
30       exit 1
31     fi
32   fi
33   
34   cd $pkg_builddir
35   
36   src_build && success
39 src_build()
41   do_build
44 src_configure()
46   do_configure
49 src_compile()
51   do_compile
54 src_install()
56   do_install
59 do_build()
61   src_configure || fail
62   src_compile || fail
63   src_install || fail
66 do_configure()
68   pkg_configure_opt=$configure_opt
69   pkg_configure_opt="$pkg_configure_opt --prefix $pkg_instdir"
70   if [ -n "$host" ]; then
71     pkg_configure_opt="$pkg_configure_opt --host $host"
72   fi
73   if [ -n "$build" ]; then
74     pkg_configure_opt="$pkg_configure_opt --build $build"
75   fi
77   if [ -z "$configure_no_more_flags" ]; then
78     pkg_configure_opt="$pkg_configure_opt CPPFLAGS=-I$pkg_instdir/include"
79     pkg_configure_opt="$pkg_configure_opt LDFLAGS=-L$pkg_instdir/lib"
80   fi
81   
82   export PKG_CONFIG_LIBDIR=$resultdir/lib/pkgconfig
84   echo "Configuring $pkg..."
85   mkdir -p ../logs
86   ./configure $pkg_configure_opt > ../logs/configure.log
89 do_compile()
91   echo "Compiling $pkg..."
92   mkdir -p ../logs
93   make > ../logs/make.log
96 do_install()
98   echo "Installing $pkg..."
99   mkdir -p ../logs
100   make install > ../logs/install.log
103 fail()
105   echo
106   echo "============="
107   echo "Build failed."
108   echo "============="
109   exit 1
112 success()
114   echo
115   echo "================"
116   echo "Build succeeded."
117   echo "================"
120 if [ -z "$1" ]; then
121   echo "Usage: $(basename $0) build package-name"
122   exit 1
124 pkg=$1
126 if [ -z "$pkg" ]; then
127   echo "Usage: $(basename $0) build package-name ..."
128   exit 1
131 recipe=$(get_recipe_name $pkg) || exit 1
133 . $recipe
135 build_source