summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile16
-rwxr-xr-xdevbuild61
2 files changed, 71 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 055b1ec..cc41a47 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,9 @@
PACKAGE=abuild
VERSION:=$(shell awk -F= '$$1 == "abuild_ver" {print $$2}' abuild)
-DISTFILES=Makefile abuild abuild.conf APKBUILD.proto buildrepo
+USR_BIN_FILES=abuild devbuild mkalpine buildrepo
+DISTFILES=$(USR_BIN_FILES) Makefile abuild.conf APKBUILD.proto
+
prefix ?= /usr
sysconfdir ?= /etc
@@ -14,23 +16,25 @@ help:
@echo "usage: make install [ DESTDIR=<path> ]"
@echo " make dist"
-install: abuild abuild.conf APKBUILD.proto functions.sh
+install: $(USR_BIN_FILES) abuild.conf APKBUILD.proto functions.sh
mkdir -p $(DESTDIR)/$(prefix)/bin $(DESTDIR)/$(sysconfdir) \
$(DESTDIR)/$(datadir)
- cp abuild buildrepo $(DESTDIR)/$(prefix)/bin/
+ for i in $(USR_BIN_FILES); do\
+ install -m 755 $$i $(DESTDIR)/$(prefix)/bin/$$i;\
+ done
if [ -z "$(DESTDIR)" ] && [ ! -f "/$(sysconfdir)"/abuild.conf ]; then\
cp abuild.conf $(DESTDIR)/$(sysconfdir)/; \
fi
cp APKBUILD.proto $(DESTDIR)/$(prefix)/share/abuild
cp functions.sh $(DESTDIR)/$(datadir)/
-dist: $(P).tar.gz
+dist: $(P).tar.bz2
-$(P).tar.gz: $(DISTFILES)
+$(P).tar.bz2: $(DISTFILES)
rm -rf $(P)
mkdir -p $(P)
cp $(DISTFILES) $(P)/
- tar -czf $@ $(P)
+ tar -cjf $@ $(P)
rm -rf $(P)
.PHONY: install dist
diff --git a/devbuild b/devbuild
new file mode 100755
index 0000000..4436602
--- /dev/null
+++ b/devbuild
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+# This scripts will:
+# 1. create a dist package for current subproject
+# 2. update the APKBUILD and build the package
+# 3. build the alpine iso
+#
+# The following is assumed from the subproject:
+# * that PACKAGE and VERSION is set in Makefile or defined in a local
+# devbuild.conf file
+# * that 'make dist' will generate a valid dist package
+#
+
+program=${0##*/}
+
+# rebuild env. Those values can be overridden in either
+# /etc/devbuild.conf or $HOME/.devbuild.conf
+DISTFILES=/var/cache/distfiles
+APORTS_DIR=$HOME/aports
+ALPINE_DIR=$HOME/abuild
+
+# for the local project. Those values can be overridden by
+# a devbuild.conf in the subprojects subdir
+PACKAGE=$(grep '^PACKAGE' Makefile | sed 's/.*=[[:blank:]]*//')
+VERSION=$(grep '^VERSION' Makefile | sed 's/.*=[[:blank:]]*//')
+SUFFIX=.tar.bz2
+REPO=core
+
+# let user override the above defaults
+for i in /etc/$program.conf $HOME/.$program.conf ./$program.conf; do
+ if [ -f $i ]; then
+ . $i
+ fi
+done
+
+# generate a new dist package
+tarball=${PACKAGE}-${VERSION}${SUFFIX}
+make dist || exit 1
+cp $tarball "$DISTFILES/" || exit 1
+
+# update the APKBUILD, in a subshell
+(
+ cd $APORTS_DIR/$REPO/$PACKAGE || exit 1
+ . ./APKBUILD
+ if [ "$pkgver" = "$VERSION" ]; then
+ pkgrel=$(( $pkgrel + 1 ))
+ else
+ pkgrel="0"
+ fi
+ sed -i -e " s/^pkgver=.*/pkgver=$VERSION/;
+ s/^pkgrel=.*/pkgrel=$pkgrel/;
+ /^md5sums=\"/,/\"\$/d" APKBUILD || exit 1
+ export SRCDEST="$DISTFILES"
+ abuild checksum >>APKBUILD
+ abuild
+ abuild cleanoldpkg
+) || exit 1
+
+# rebuild the iso
+cd "$ALPINE_DIR" && fakeroot ./mkalpine
+