diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-09 15:55:33 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2016-06-09 15:55:33 -0400 |
commit | d330445fb7f84748e70e67ca5bc44ce0a1a258f7 (patch) | |
tree | 0c1c957298635b7ba0ff69c2fe76af647304a631 /build-aux/Makefile.once.head/20-libretools.mk | |
parent | f579b669d45c02b39474827f12522ff4afa6cf4a (diff) |
Work with the new version of autothing.
Diffstat (limited to 'build-aux/Makefile.once.head/20-libretools.mk')
-rw-r--r-- | build-aux/Makefile.once.head/20-libretools.mk | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/build-aux/Makefile.once.head/20-libretools.mk b/build-aux/Makefile.once.head/20-libretools.mk new file mode 100644 index 0000000..48964d9 --- /dev/null +++ b/build-aux/Makefile.once.head/20-libretools.mk @@ -0,0 +1,81 @@ +# Copyright (C) 2015 Luke Shumaker +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# Configure how Make works +MAKEFLAGS += --no-builtin-rules --no-builtin-variables +.SECONDARY: +.DELETE_ON_ERROR: + +.PHONY: FORCE + +# Magic for tracking variables that affect files. If a file changes +# based on a variable, just stick $(var)VARNAME as a dependency. +var = $(call at.path,$(topoutdir)/.var.) +$(var)%: FORCE + @printf '%s' '$($*)' | $(WRITE_IFCHANGED) $@ + +# Usage: <INPUT $(edit) >OUTPUT +# Expand m4_include macros to use librelib +# This is used when using sources grabbed from devtools +# Magic for doing @variable@ replacement in files +edit = sed \ + -e 's|^\#!\s*/bin/bash|\#!/usr/bin/env bash|' \ + -e 's|m4_include(lib/\(.*\))|. "$$(librelib \1)"|' \ + $(foreach v,$(patsubst $(var)%,%,$(filter $(var)%,$^)), -e 's|@$(v)@|$($(v))|g' ) + +# 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 '(defun sh-smie-sh-rules--fix (args) "fix bug in Emacs 24 sh-script.el" (if (equal args (list :after "then")) (list :after "if") args))' \ + --eval "(advice-add 'sh-smie-sh-rules :filter-args \#'sh-smie-sh-rules--fix)" \ + --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 --to-code=UTF-8 + +# It's easy to think of these as "each" variables, but because they +# will be evaluated on demand, only std.src_files needs to be "each". +detect-all = $(filter-out $(detect-ignore) ,$(srcfiles)) +detect-exec = $(filter-out $(detect-ignore-exec),$(patsubst $(srcdir)/%,%,$(shell find $(addprefix $(srcdir)/,$(detect-all)) -executable))) +detect-conf = $(filter-out $(detect-ignore-conf),$(filter %.conf ,$(detect-all))) +detect-ronn = $(filter-out $(detect-ignore-ronn),$(filter %.ronn ,$(detect-all))) +detect-md = $(filter-out $(detect-ignore-md) ,$(filter %.ronn %.md,$(detect-all))) +detect-sh = $(filter-out $(detect-ignore-sh) ,$(filter %.sh ,$(detect-all))) + +ifeq ($(wildcard $(topsrcdir)/.git),) +include $(topsrcdir)/.srcversion-libretools.mk +else +$(topsrcdir)/.srcversion-libretools.mk: FORCE + @{ \ + echo LIBRETOOLS_VERSION = $(patsubst v%,%,$(shell cd $(topsrcdir) && git describe --tags)); \ + echo LIBRETOOLS_COMMIT = $(shell cd $(topsrcdir) && git rev-parse HEAD); \ + :; } | $(WRITE_IFCHANGED) $@ +-include $(topsrcdir)/.srcversion-libretools.mk +endif + +ifeq ($(wildcard $(devtoolsdir)/.git),) +include $(topsrcdir)/.srcversion-devtools.mk +else +$(topsrcdir)/.srcversion-devtools.mk: FORCE + @{ \ + echo DEVTOOLS_VERSION = $(patsubst libretools-%,%,$(shell cd $(devtoolsdir) && git describe --tags)); \ + echo DEVTOOLS_COMMIT = $(shell cd $(devtoolsdir) && git rev-parse HEAD); \ + :; } | $(WRITE_IFCHANGED) $@ +-include $(topsrcdir)/.srcversion-devtools.mk +endif |