summaryrefslogtreecommitdiff
path: root/common.mk
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2014-06-16 22:40:57 -0400
committerLuke Shumaker <LukeShu@sbcglobal.net>2014-06-16 22:40:57 -0400
commit3d9850b56c77b51edcdb2697c74ba2d1761109dc (patch)
treee5fe03bcbf6cd4d72f7c31a3129156e6784c4325 /common.mk
parent52cc0c3ff27d4c48d3461d9fd898367aa4a92631 (diff)
parent813bfa255a1e46f05e08dcb587b8f417b995b2d4 (diff)
Merge branch 'master' into lukeshu/xbs
Diffstat (limited to 'common.mk')
-rw-r--r--common.mk31
1 files changed, 27 insertions, 4 deletions
diff --git a/common.mk b/common.mk
index ea89de1..58366d7 100644
--- a/common.mk
+++ b/common.mk
@@ -10,6 +10,14 @@ pkglibexecdir ?= $(libexecdir)/libretools
# This is used when using sources grabbed from devtools
edit = sed -e 's|m4_include(lib/\(.*\))|. $$(librelib \1)|'
+# Usage: $(call indent,FILENAME)
+# Command to auto-indent a file.
+indent = emacs --batch $1 \
+ --eval '(setq make-backup-files nil)' \
+ --eval '(setq sh-basic-offset 8)' \
+ --eval '(indent-region (point-min) (point-max) nil)' \
+ -f save-buffer &>/dev/null
+
# Usage <INPUT $(pofmt) >OUTPUT
# Normalize a .po(t) file
pofmt = msguniq -Fi
@@ -53,7 +61,7 @@ install_files += $(addprefix $(DESTDIR)$(bindir)/,$(progs)) \
$(addprefix $(DESTDIR)$(mandir)/man6/,$(filter %.6,$(mans))) \
$(addprefix $(DESTDIR)$(mandir)/man7/,$(filter %.7,$(mans))) \
$(addprefix $(DESTDIR)$(mandir)/man8/,$(filter %.8,$(mans)))
-clean_files += $(patsubst %.in,%,$(copy_files)) $(copy_files) $(mans) $(wildcard *.pot)
+clean_files += $(patsubst %.in,%,$(copy_files)) $(copy_files) $(mans) $(wildcard *.pot *.ugly*)
pots += $(filter-out $(no-pots) ,$(progs))
pot_files += $(addsuffix .pot,$(pots))
@@ -79,10 +87,23 @@ build: PHONY $(build_files)
ronn --roff $(RONNFLAGS) < '$<' > '$@'
%.html: %.ronn
ronn --html $(RONNFLAGS) < '$<' > '$@'
+
+
+# If we have a .patch file, the flow is:
+# $(devtoolsdir)/%.in -> %.in + %.patch -> %.ugly -> %
+_do_patch = $(filter $(patsubst %.patch,%,$(wildcard *.patch)),$(patsubst %.in,%,$(copy_files)))
+%.ugly: %.in %.patch Makefile
+ cp $*.in $@
+ @echo 'PATCH $@ $*.patch'; patch $@ $*.patch
+$(sort $(_do_patch)): %: %.ugly Makefile
+ @echo 'EDIT < $< > $@'; $(edit) <'$<' >'$@'
+ @echo 'INDENT $@'; $(call indent,$@)
+ $(if $(filter-out %.sh,$@),chmod 755 "$@")
+# Otherwise, the flow is just
+# $(devtoolsdir)/%.in -> %.in -> %
%: %.in
- @echo "GEN $@"
- @$(edit) <"$<" >"$@" || { rm -f -- '$@'; false; }
- @chmod 755 "$@" || { rm -f -- '$@'; false; }
+ @echo 'EDIT < $< > $@'; $(edit) <"$<" >"$@"
+ $(if $(filter-out %.sh,$@),chmod 755 "$@")
# Build ########################################################################
@@ -146,3 +167,5 @@ clean-hook: PHONY
FORCE: PHONY
PHONY:
.PHONY: FORCE PHONY
+
+.DELETE_ON_ERROR: