diff --git a/Makefile b/Makefile
index 9e89c77f1a13448cfd46e31b9272d3b79bce60ce..b284d47597185a32d542e3c23b8e08174caac054 100644
--- a/Makefile
+++ b/Makefile
@@ -1,18 +1,50 @@
 
-PACKAGE=abuild
-VERSION:=$(shell  awk -F= '$$1 == "abuild_ver" {print $$2}' abuild)
-USR_BIN_FILES=abuild devbuild mkalpine buildrepo
-SAMPLES=sample.APKBUILD sample.initd sample.confd sample.pre-install \
-	sample.post-install
-DISTFILES=$(USR_BIN_FILES) $(SAMPLES) Makefile abuild.conf initramfs-init \
-
+PACKAGE		:= abuild
+VERSION		:= 1.14
 
 prefix ?= /usr
 sysconfdir ?= /etc
 datadir ?= $(prefix)/share/$(PACKAGE)
 
+USR_BIN_FILES	:= abuild devbuild mkalpine buildrepo
+SAMPLES		:= sample.APKBUILD sample.initd sample.confd \
+		sample.pre-install sample.post-install
+
+SCRIPTS		:= $(USR_BIN_FILES)
+SCRIPT_SOURCES	:= $(addsuffix .in,$(SCRIPTS))
+
+DISTFILES=$(SCRIPT_SOURCES) $(SAMPLES) Makefile abuild.conf 
+
+GIT_REV		:= $(shell test -d .git && git describe || echo exported)
+ifneq ($(GIT_REV), exported)
+FULL_VERSION    := $(patsubst $(PACKAGE)-%,%,$(GIT_REV))
+FULL_VERSION    := $(patsubst v%,%,$(FULL_VERSION))
+else
+FULL_VERSION    := $(VERSION)
+endif
+
+SED		:= sed
+TAR		:= tar
+
+SED_REPLACE	:= -e 's:@VERSION@:$(FULL_VERSION):g' \
+			-e 's:@prefix@:$(prefix):g' \
+			-e 's:@sysconfdir@:$(sysconfdir):g' \
+			-e 's:@datadir@:$(datadir):g'
+
+.SUFFIXES:	.sh.in .in
+.sh.in.sh:
+	${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
+
+.in:
+	${SED} ${SED_REPLACE} ${SED_EXTRA} $< > $@
+
+
+
+
 P=$(PACKAGE)-$(VERSION)
 
+all: 	$(SCRIPTS)
+
 help:
 	@echo "$(P) makefile"
 	@echo "usage: make install [ DESTDIR=<path> ]"
@@ -29,7 +61,6 @@ install: $(USR_BIN_FILES) $(SAMPLES) abuild.conf functions.sh
 	fi
 	cp $(SAMPLES) $(DESTDIR)/$(prefix)/share/abuild
 	cp functions.sh $(DESTDIR)/$(datadir)/
-	cp initramfs-init $(DESTDIR)/$(datadir)/
 
 dist:	$(P).tar.bz2
 
diff --git a/abuild b/abuild.in
similarity index 95%
rename from abuild
rename to abuild.in
index 8f1e04047cd2cabea8e05490520c1f1a1ec3feb0..1c58ee1754937a4a483dfbf5db9125915e395f29 100755
--- a/abuild
+++ b/abuild.in
@@ -8,7 +8,8 @@
 # Depends on: busybox utilities, fakeroot, 
 #
 
-abuild_ver=1.14
+abuild_ver=@VERSION@
+sysconfdir=@sysconfdir@
 
 startdir="$PWD"
 srcdir=${srcdir:-"$startdir/src"}
@@ -27,23 +28,45 @@ SUDO=${SUDO:-"sudo"}
 default_cmds="sanitycheck builddeps clean fetch unpack rootpkg"
 
 # read config
-ABUILD_CONF=${ABUILD_CONF:-"/etc/abuild.conf"}
+ABUILD_CONF=${ABUILD_CONF:-"$sysconfdir/abuild.conf"}
 [ -f "$ABUILD_CONF" ] && . "$ABUILD_CONF"
 
 # source functions
 datadir=/usr/share/abuild
 
-# if abuild was not run from PATH, then look for func lib at same location
-if [ -z "$FUNCLIB" ]; then
-	FUNCLIB="${0##/*}/functions.sh"
-	[ -f "$FUNCLIB"	] || FUNCLIB=$datadir/functions.sh
-fi
+#colors
+if [ -n "$USE_COLORS" ]; then
+	NORMAL="\033[1;0m"
+	STRONG="\033[1;1m"
+	RED="\033[1;31m"
+	GREEN="\033[1;32m"
+	YELLOW="\033[1;33m"
+	BLUE="\033[1;34m"
+fi	
+	
+
+# functions
+msg() {
+	local prompt="$GREEN>>>${NORMAL}"
+	local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
+	local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
+	[ -z "$quiet" ] && printf "${prompt} ${name}${fake}: $@\n" >&2
+}
+
+warning() {
+	local prompt="${YELLOW}>>> WARNING:${NORMAL}"
+	local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
+	local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
+	printf "${prompt} ${name}${fake}: $@\n" >&2
+}
+
+error() {
+	local prompt="${RED}>>> ERROR:${NORMAL}"
+	local fake="${FAKEROOTKEY:+${BLUE}*${NORMAL}}"
+	local name="${STRONG}${subpkgname:-$pkgname}${NORMAL}"
+	printf "${prompt} ${name}${fake}: $@\n" >&2
+}
 
-if ! [ -f "$FUNCLIB" ]; then
-	echo "$FUNCLIB: not found" >&2
-	exit 1
-fi
-. "$FUNCLIB"
 	
 set_xterm_title() {
 	if [ "$TERM" = xterm ]; then
@@ -190,11 +213,7 @@ unpack() {
 clean() {
 	msg "Cleaning temporary build dirs..."
 	rm -rf "$srcdir"
-	rm -rf "$pkgdir"
-	local i
-	for i in $subpackages; do
-		rm -rf "$pkgdir-$(get_split_func $i)"
-	done
+	rm -rf "$pkgdirbase"
 }
 
 # cleanup fetched sources
diff --git a/buildrepo b/buildrepo.in
similarity index 100%
rename from buildrepo
rename to buildrepo.in
diff --git a/devbuild b/devbuild.in
similarity index 100%
rename from devbuild
rename to devbuild.in
diff --git a/mkalpine b/mkalpine.in
similarity index 100%
rename from mkalpine
rename to mkalpine.in