diff options
Diffstat (limited to 'debian/scripts')
-rw-r--r-- | debian/scripts/dbs-build.mk | 92 | ||||
-rw-r--r-- | debian/scripts/file2cat | 13 |
2 files changed, 105 insertions, 0 deletions
diff --git a/debian/scripts/dbs-build.mk b/debian/scripts/dbs-build.mk new file mode 100644 index 00000000..fb096ff8 --- /dev/null +++ b/debian/scripts/dbs-build.mk @@ -0,0 +1,92 @@ +#!/usr/bin/make -f +# Separate tarball/patch build system by Adam Heath <doogie@debian.org> +# Modified by Ben Collins <bcollins@debian.org> + +SHELL := /bin/bash -e +SOURCE_DIR := build-tree +STAMP_DIR := stampdir +PATCH_DIR := debian/patches + +patched := $(STAMP_DIR)/patch +unpacked := $(STAMP_DIR)/unpack + +ifdef TAR_DIR + BUILD_TREE := $(SOURCE_DIR)/$(TAR_DIR) +else + BUILD_TREE := $(SOURCE_DIR) +endif + +dh_mak_deps := $(shell DH_COMPAT=$(DH_COMPAT) perl debian/scripts/dh_split makedeps) +dh_gen_deps := $(shell DH_COMPAT=$(DH_COMPAT) perl debian/scripts/dh_split gendeps) + +$(dh_mak_deps): $(dh_gen_deps) + perl debian/scripts/dh_split + +setup: $(dh_mak_deps) + dh_testdir + @-up-scripts + $(MAKE) -f debian/rules $(unpacked) $(patched) + +$(patched)/: $(STAMP_DIR)/created $(unpacked) + test -d $(STAMP_DIR)/patches || mkdir -p $(STAMP_DIR)/patches + @if [ -d "$(PATCH_DIR)" ]; then \ + mkdir -p $(STAMP_DIR)/log/patches; \ + for f in `(cd $(PATCH_DIR); find -type f ! -name 'chk-*') | sort | \ + sed s,'./',,g`; do \ + stampfile=$(STAMP_DIR)/patches/$$f; \ + log=$(STAMP_DIR)/log/patches/$$f; \ + if [ ! -e $$stampfile ]; then \ + echo -n "Applying patch $(PATCH_DIR)/$$f ... "; \ + if $(SHELL) debian/scripts/file2cat $(PATCH_DIR)/$$f | \ + (cd $(BUILD_TREE);patch -p1 --no-backup-if-mismatch) > $$log 2>&1; then \ + echo successful.; \ + touch $$stampfile; \ + else \ + echo "failed! (check $$log for reason)"; \ + exit 1; \ + fi; \ + else \ + echo Already applied $(PATCH_DIR)/$$f.; \ + fi; \ + done; \ + fi + touch $@ + +$(unpacked): $(STAMP_DIR)/created + mkdir -p $(STAMP_DIR)/sources $(SOURCE_DIR) $(STAMP_DIR)/log/sources + @for f in `find . -type f -maxdepth 1 -name \*.tgz -o -name \*.tar.gz -o \ + -name \*.tar.bz -o -name \*.tar.bz2 | sort | sed s,'./',,g`; do \ + stampfile=$(STAMP_DIR)/sources/`basename $$f`; \ + log=$(STAMP_DIR)/log/sources/`basename $$f`; \ + if [ ! -e $$stampfile ]; then \ + echo -n "Extracting source $$f ... "; \ + if $(SHELL) debian/scripts/file2cat $$f | \ + (cd $(SOURCE_DIR); tar xv) > $$log 2>&1; then \ + echo successful.; \ + touch $$stampfile; \ + else \ + echo failed!; \ + exit 1; \ + fi; \ + else \ + echo Already unpacked $$f.; \ + fi; \ + done + touch $@ + +make_patch: + mv $(BUILD_TREE) $(BUILD_TREE).new + rm -rf $(STAMP_DIR) + $(MAKE) -f debian/rules $(unpacked) $(patched) +ifndef TAR_DIR + diff -urN $(BUILD_TREE) $(BUILD_TREE).new > new.diff +else + (cd $(SOURCE_DIR) && diff -urN $(TAR_DIR) $(TAR_DIR).new || true) > new.diff +endif + rm -rf $(BUILD_TREE) + mv $(BUILD_TREE).new $(BUILD_TREE) + @echo; ls -l new.diff + +$(STAMP_DIR)/created: + test -d $(STAMP_DIR) || mkdir $(STAMP_DIR) + touch $(STAMP_DIR)/created diff --git a/debian/scripts/file2cat b/debian/scripts/file2cat new file mode 100644 index 00000000..d95d77e3 --- /dev/null +++ b/debian/scripts/file2cat @@ -0,0 +1,13 @@ +#!/bin/sh + +if [ "$1" = "" ]; then + echo "Usage: file2cat <file>" + exit 1 +fi + +case "$1" in + *.gz|*.Z|*.tgz) cmd=zcat;; + *.bz|*.bz2) cmd=bzcat;; + *) cmd=cat;; +esac +$cmd $1 |