tBuild software in $workdir instead of $PWD - mkports - recipes for building multiple softwares with mk(1)
(HTM) git clone git://z3bra.org/mkports
(DIR) Log
(DIR) Files
(DIR) Refs
---
(DIR) commit 4e2f8329fd1026289306f60e231fdb8dd2b42a47
(DIR) parent da0781e453cdb212d86bc21bd8f6bd455dde4dfd
(HTM) Author: z3bra <willyatmailoodotorg>
Date: Wed, 13 Apr 2016 08:22:58 +0200
Build software in $workdir instead of $PWD
Diffstat:
M binutils/mkfile | 2 +-
M config.mk | 1 +
M curl/mkfile | 2 +-
M dash/mkfile | 2 +-
M default.mk | 46 ++++++++++++++++++-------------
M gcc/mkfile | 4 ++--
M init/mkfile | 12 ++++++------
M iputils/mkfile | 2 +-
M libpcc/mkfile | 4 ----
M libz/mkfile | 2 --
M mkfile | 2 +-
M mksh/mkfile | 4 ++--
12 files changed, 43 insertions(+), 40 deletions(-)
---
(DIR) diff --git a/binutils/mkfile b/binutils/mkfile
t@@ -8,7 +8,7 @@ url = ftp://ftp.gnu.org/gnu/$pkg/$pkg-$ver.tar.bz2
MAKEFLAGS = ${MAKEFLAGS} tooldir=''
build:QV: fetch patch
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
./configure $CONFIGURE
make configure-host
make CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS -all-static" ${MAKEFLAGS}
(DIR) diff --git a/config.mk b/config.mk
t@@ -3,6 +3,7 @@ CROSS = /opt/cross/${TOOLCHAIN_TRIPLET}
ROOT = ${CROSS}/${TOOLCHAIN_TRIPLET}
PATH = ${CROSS}/bin:${PATH}
NPROC = 8
+workdir = `{printf '/tmp/mkports/%s-%s' "$pkg" "$(id -u)"}
CC = ${TOOLCHAIN_TRIPLET}-gcc -static
CXX = ${TOOLCHAIN_TRIPLET}-g++ -static
(DIR) diff --git a/curl/mkfile b/curl/mkfile
t@@ -25,7 +25,7 @@ CONFIGURE = ${CONFIGURE} \
--disable-smtps
build:QV: fetch patch
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
./configure ${CONFIGURE}
make ${MAKEFLAGS}
# static build: http://curl.haxx.se/mail/archive-2003-03/0115.html
(DIR) diff --git a/dash/mkfile b/dash/mkfile
t@@ -7,6 +7,6 @@ url=http://gondor.apana.org.au/~herbert/dash/files/$pkg-$ver.tar.gz
install:V: build
mkdir -p $destdir
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
make PREFIX= DESTDIR=$destdir install
ln -sf /bin/dash $destdir/bin/sh
(DIR) diff --git a/default.mk b/default.mk
t@@ -1,27 +1,31 @@
-destdir = `{printf '%s/%s/.rootfs' "$(pwd)" "$pkg-$ver"}
+srcdir = `{pwd}
+workdir = `{printf '/tmp/%s-%s' "$pkg" "$(id -u)"}
+destdir = `{printf '%s/%s/.rootfs' "$workdir" "$pkg-$ver"}
archive = `{basename $url 2>/dev/null || echo /dev/null}
+
# create a pack from an chroot install (see the "install" target)
-$pkg\#$ver.tar.bz2:Q: fetch patch build install cleanup
+$pkg\#$ver.tar.bz2: fetch patch build install cleanup
cd $destdir
- tar -c `ls` | bzip2 -c > ../../$pkg\#$ver.tar.bz2
+ tar -c `ls` | bzip2 -c > $srcdir/$pkg\#$ver.tar.bz2
# recipe trying to follow the most common pattern in software
# building
# If it doesn't work, simply override it on a per pack basis
-build:QV: fetch patch
- cd $pkg-$ver
+build:V: fetch patch
+ cd $workdir/$pkg-$ver
test -f configure && ./configure $CONFIGURE
make CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" ${MAKEFLAGS}
# install the pack to a .rootfs directory
# this is where the "pack" target will chdir to create the pack
-install:QV: build
+install:V: build
+ echo $destdir
mkdir -p $destdir
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
make ${MAKEFLAGS} DESTDIR=$destdir install
-cleanup:QV: install
+cleanup:V: install
cd $destdir
find . -name '*.la' | xargs -r rm
find . -name '*.so' | xargs -r rm
t@@ -34,18 +38,20 @@ cleanup:QV: install
fi
# patch your software using everything in ./patches
-patch:QV: fetch
- if [ -d ./patches ]; then
- cd $pkg-$ver
- cat ../patches/*.diff | patch -Np1
+patch:V: fetch
+ if [ -d "$srcdir/patches" ]; then
+ cd $workdir/$pkg-$ver
+ cat $srcdir/patches/*.diff | patch -Np1
fi
# fetch the source
-fetch:QV: fetch-git fetch-archive
+fetch:V: fetch-git fetch-archive
# if $git is set, clone the repo, and checkout $ver
-fetch-git:QV:
+fetch-git:V:
if [ -n "$git" ]; then
+ mkdir -p $workdir
+ cd $workdir
test -d $pkg-$ver || git clone $git $pkg-$ver
cd $pkg-$ver
git reset --hard
t@@ -54,9 +60,9 @@ fetch-git:QV:
# if $url is set, download/extract the archive, and move its
# content to a directory named $pkg-$ver
-fetch-archive:QV: $archive
+fetch-archive:V: $archive
if [ -n "$url" ]; then
- rm -rf $pkg-$ver
+ cd $workdir
case $archive in
*.tar.bz2) opt="-xvj" ;;
*.tar.gz|*.tgz) opt="-xvz" ;;
t@@ -71,14 +77,15 @@ fetch-archive:QV: $archive
$archive:Q:
if [ -n "$url" ]; then
+ mkdir -p $workdir
+ cd $workdir
curl -LO $url > $archive
fi
# delete everything but the pack
clean:V:
- rm -rf $pkg-$ver
- test -z "$url" || rm -f $archive
+ rm -rf $workdir
# remove the pack
distclean:V: clean
- rm -f $pkg#$ver.tar.bz2
+ rm -f $srcdir/$pkg#$ver.tar.bz2
+\ No newline at end of file
(DIR) diff --git a/gcc/mkfile b/gcc/mkfile
t@@ -18,12 +18,12 @@ CONFIGURE = ${CONFIGURE} \
--with-pkgversion="SPOINK-x86_64-static"
#build:QV: fetch patch
-# cd $pkg-$ver
+# cd $workdir/$pkg-$ver
# ./configure $CONFIGURE
# make CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" ${MAKEFLAGS} all-gcc all-target-libgcc
install:QV: build
mkdir -p $destdir
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
make ${MAKEFLAGS} DESTDIR=$destdir install-gcc install-target-libgcc
(DIR) diff --git a/init/mkfile b/init/mkfile
t@@ -5,17 +5,17 @@ ver = 0.1
<../default.mk
build:QV: fetch patch
- mkdir -p $pkg-$ver
- cp init.c $pkg-$ver/init.c
- cd $pkg-$ver
+ mkdir -p $workdir/$pkg-$ver
+ cp init.c $workdir/$pkg-$ver/init.c
+ cd $workdir/$pkg-$ver
$CC $CFLAGS init.c $LDFLAGS -o init
install:QV: build
mkdir -p $destdir/sbin
mkdir -p $destdir/libexec
- cp $pkg-$ver/init $destdir/sbin/init
- cp rc $destdir/sbin/rc
- cp power.subr $destdir/libexec/power.subr
+ cp $workdir/$pkg-$ver/init $destdir/sbin/init
+ cp $srcdir/rc $destdir/sbin/rc
+ cp $srcdir/power.subr $destdir/libexec/power.subr
chmod 750 $destdir/sbin/rc
chmod 750 $destdir/libexec/power.subr
ln -sf /libexec/power.subr $destdir/sbin/reboot
(DIR) diff --git a/iputils/mkfile b/iputils/mkfile
t@@ -10,7 +10,7 @@ MAKEFLAGS = ${MAKEFLAGS} USE_GNUTLS=no USE_CAP=no
install:QV: build
mkdir -p $destdir/bin
mkdir -p $destdir/sbin
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
cp ping ping6 $destdir/bin
cp arping tracepath tracepath6 traceroute6 clockdiff rarpd rdisc $destdir/sbin/
chmod u+s $destdir/bin/ping $destdir/sbin/traceroute6
(DIR) diff --git a/libpcc/mkfile b/libpcc/mkfile
t@@ -6,7 +6,3 @@ url = ftp://pcc.ludd.ltu.se/pub/pcc-libs/pcc-libs-$ver.tgz
<../config.mk
<../default.mk
-
-clean:V:
- rm -rf $pkg-$ver
- rm -f pcc-libs-$ver.*
(DIR) diff --git a/libz/mkfile b/libz/mkfile
t@@ -5,6 +5,4 @@ url = http://zlib.net/zlib-$ver.tar.gz
<../config.mk
<../default.mk
-prefix =
-mandir = /man
CONFIGURE = --static
(DIR) diff --git a/mkfile b/mkfile
t@@ -1,4 +1,4 @@
-ALL = `{ls | grep -vE '[a-z]*\.mk|mkfile'}
+ALL = `{ls | grep -vE '[A-Z]+|[a-z]*\.mk|mkfile'}
<config.mk
<deps.mk
(DIR) diff --git a/mksh/mkfile b/mksh/mkfile
t@@ -8,11 +8,11 @@ url = http://www.mirbsd.org/MirOS/dist/mir/mksh/$pkg-$ver.tgz
CFLAGS = ${CFLAGS} -DMKSH_S_NOVI=1 -DMKSH_SMALL_BUT_FAST
build:QV: fetch patch
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
/bin/sh Build.sh -r
install:QV: build
- cd $pkg-$ver
+ cd $workdir/$pkg-$ver
mkdir -p $destdir/bin
mkdir -p $destdir/etc
mkdir -p $destdir/man/man1