diff options
Diffstat (limited to 'build-aux/Makefile.once.head/20-sd.mk')
-rw-r--r-- | build-aux/Makefile.once.head/20-sd.mk | 231 |
1 files changed, 161 insertions, 70 deletions
diff --git a/build-aux/Makefile.once.head/20-sd.mk b/build-aux/Makefile.once.head/20-sd.mk index 134c2c0ef1..4e44d2f7b3 100644 --- a/build-aux/Makefile.once.head/20-sd.mk +++ b/build-aux/Makefile.once.head/20-sd.mk @@ -20,81 +20,173 @@ # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <http://www.gnu.org/licenses/>. -include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk -include $(topsrcdir)/build-aux/Makefile.head.mk -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -AM_MAKEFLAGS = --no-print-directory -AUTOMAKE_OPTIONS = color-tests parallel-tests +mod.sd.description = (systemd) shared build rules +mod.sd.depends += am +define mod.sd.doc +# User variables: +# (flags) +# - `CFLAGS` +# - `CPPFLAGS` +# - `LDFLAGS` +# - `LIBTOOLFLAGS` +# (programs) +# - `CC` +# - `CCLD` +# - `LIBTOOL` +# - `MKDIR_P` +# - `SED` +# (verbosity) +# - `V` +# - `AM_V_*` +# - `INTLTOOL_V_MERGE*` +# (substitutions)$(foreach v,$(sort $(sd.substitution_keys)),$(at.nl)# - $v) +# Inputs: +# - Global variable : `DEPDIR` +# - Global variable : `ENABLE_TESTS` +# - Global variable : `ENABLE_UNSAFE_TESTS` +# - Global variable : `OUR_CFLAGS` +# - Global variable : `OUR_CPPFLAGS` +# - Global variable : `OUR_LDFLAGS` +# - Global variable : `OUR_LIBTOOLFLAGS` +# (Makefiles) +# - Directory variable : `sd.CFLAGS` +# - Directory variable : `sd.CPPFLAGS` +# - Directory variable : `sd.LDFLAGS` +# - Directory variable : `sd.LIBTOOLFLAGS` +# - Directory variable : `sd.sed_files` (default based on `EXTRA_DIST`) +# (am) +# - Directory variable : `EXTRA_DIST` +# - Directory variable : `am.out_PROGRAMS` +# - Directory variable : `am.CFLAGS` +# - Directory variable : `am.CPPFLAGS` +# - Target variable : `am.LDFLAGS` +# Outputs: +# - Global variable : `SHELL` +# - Make setting : `.DELETE_ON_ERROR` +# - Make setting : `.SECONDARY` +# - Global variable : `sd.substitutions` +# - Global variable : `sd.substitution_keys` +# - Global variable : `sd.sed_process` +# - Directory variable : `files.out.int` +# - Target variable : `sd.ALL_CFLAGS` +# - Target variable : `sd.ALL_CPPFLAGS` +# - Target variable : `sd.ALL_LDFLAGS` +# - Target variable : `sd.ALL_LIBTOLFLAGS` +# - Target variable : `sd.COMPILE` +# - Target variable : `sd.LTCOMPILE` +# - Target variable : `sd.LINK` +# - Target : `$$(outdir)/%.o` +# - Target : `$$(outdir)/%.lo` +# - Target : `$$(outdir)/$$(DEPDIR)` +# - Target : `$$(outdir)/%.la` +# - Target : `$$(addprefix $$(outdir)/,$$(am.out_PROGRAMS))` +# - Target : `$$(outdir)/test-lib%-sym.c` +# - Target : `$$(outdir)/%-from-name.gperf` +# - Target : `$$(outdir)/%-from-name.h` +# - Target : `$$(addprefix $$(outdir)/,$$(sd.sed_files))` +# - Target : `$$(outdir)/%.c: $$(srcdir)/%.gperf` +# - Target : `$$(outdir)/%: $$(srcdir)/%.m4` +# ???: +# - tests +# - unsafe_tests +# - TESTS -GCC_COLORS ?= 'ooh, shiny!' -export GCC_COLORS +endef -SUBDIRS = . po +tests ?= +unsafe_tests ?= +TESTS = $(if $(ENABLE_TESTS),$(tests) \ + $(if $(ENABLE_UNSAFE_TESTS),$(unsafe_tests))) -# remove targets if the command fails -.DELETE_ON_ERROR: +# Make behavior +SHELL = bash -o pipefail -# keep intermediate files +.DELETE_ON_ERROR: .SECONDARY: -# Keep the test-suite.log -.PRECIOUS: $(TEST_SUITE_LOG) Makefile +# Autoconf +OUR_CPPFLAGS += -MT $@ -MD -MP -MF $(@D)/$(DEPDIR)/$(basename $(@F)).P$(patsubst .%,%,$(suffix $(@F))) +OUR_CPPFLAGS += -include $(topoutdir)/config.h +OUR_CPPFLAGS += $(sort -I$(@D) $(if $(<D),-I$(<D) -I$(call at.out2src,$(<D)))) + +sd.ALL_CFLAGS = $(strip $(OUR_CFLAGS) $(am.CFLAGS) $(sd.CFLAGS) $(CFLAGS) ) +sd.ALL_CPPFLAGS = $(strip $(OUR_CPPFLAGS) $(am.CPPFLAGS) $(sd.CPPFLAGS) $(CPPFLAGS) ) +sd.ALL_LDFLAGS = $(strip $(OUR_LDFLAGS) $(am.LDFLAGS) $(sd.LDFLAGS) $(LDFLAGS) ) +sd.ALL_LIBTOOLFLAGS = $(strip $(OUR_LIBTOOLFLAGS) $(sd.LIBTOOLFLAGS) $(LIBTOOLFLAGS) ) + +sd.COMPILE = $(CC) $(sd.ALL_CPPFLAGS) $(sd.ALL_CFLAGS) +sd.LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(sd.ALL_LIBTOOLFLAGS) --mode=compile $(CC) $(sd.ALL_CPPFLAGS) $(sd.ALL_CFLAGS) +sd.LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(sd.ALL_LIBTOOLFLAGS) --mode=link $(CCLD) $(sd.ALL_CFLAGS) $(sd.ALL_LDFLAGS) -o $@ + +CC ?= c99 +CCLD ?= c99 +LIBTOOL ?= libtool V ?= -AM_V_M4 = $(AM_V_M4_$(V)) -AM_V_M4_ = $(AM_V_M4_$(AM_DEFAULT_VERBOSITY)) -AM_V_M4_0 = @echo " M4 " $@; -AM_V_M4_1 = - -AM_V_GPERF = $(AM_V_GPERF_$(V)) -AM_V_GPERF_ = $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY)) -AM_V_GPERF_0 = @echo " GPERF " $@; -AM_V_GPERF_1 = - -AM_V_RM = $(AM_V_RM_$(V)) -AM_V_RM_ = $(AM_V_RM_$(AM_DEFAULT_VERBOSITY)) -AM_V_RM_0 = @echo " RM " $@; -AM_V_RM_1 = - -AM_V_CC = $(AM_V_CC_$(V)) -AM_V_CC_ = $(AM_V_CC_$(AM_DEFAULT_VERBOSITY)) -AM_V_CC_0 = @echo " CC " $@; -AM_V_CC_1 = - -AM_V_CCLD = $(AM_V_CCLD_$(V)) -AM_V_CCLD_ = $(AM_V_CCLD_$(AM_DEFAULT_VERBOSITY)) -AM_V_CCLD_0 = @echo " CCLD " $@; -AM_V_CCLD_1 = - -AM_V_P = $(AM_V_P_$(V)) -AM_V_P_ = $(AM_V_P_$(AM_DEFAULT_VERBOSITY)) -AM_V_P_0 = false -AM_V_P_1 = : - -AM_V_GEN = $(AM_V_GEN_$(V)) -AM_V_GEN_ = $(AM_V_GEN_$(AM_DEFAULT_VERBOSITY)) -AM_V_GEN_0 = @echo " GEN " $@; -AM_V_GEN_1 = - -AM_V_at = $(AM_V_at_$(V)) -AM_V_at_ = $(AM_V_at_$(AM_DEFAULT_VERBOSITY)) -AM_V_at_0 = @ -AM_V_at_1 = - -AM_V_lt = $(AM_V_lt_$(V)) -AM_V_lt_ = $(AM_V_lt_$(AM_DEFAULT_VERBOSITY)) -AM_V_lt_0 = --silent -AM_V_lt_1 = - -INTLTOOL_V_MERGE = $(INTLTOOL_V_MERGE_$(V)) -INTLTOOL_V_MERGE_OPTIONS = $(intltool_v_merge_options_$(V)) -INTLTOOL_V_MERGE_ = $(INTLTOOL_V_MERGE_$(AM_DEFAULT_VERBOSITY)) -INTLTOOL_V_MERGE_0 = @echo " ITMRG " $@; -INTLTOOL_V_MERGE_1 = - -substitutions = \ +AM_V_at ?= $(AM_V_at_$(V)) +AM_V_at_ ?= $(AM_V_at_$(AM_DEFAULT_VERBOSITY)) +AM_V_at_0 ?= @ +AM_V_at_1 ?= + +AM_V_M4 ?= $(AM_V_M4_$(V)) +AM_V_M4_ ?= $(AM_V_M4_$(AM_DEFAULT_VERBOSITY)) +AM_V_M4_0 ?= @echo " M4 " $@; +AM_V_M4_1 ?= + +AM_V_GPERF ?= $(AM_V_GPERF_$(V)) +AM_V_GPERF_ ?= $(AM_V_GPERF_$(AM_DEFAULT_VERBOSITY)) +AM_V_GPERF_0 ?= @echo " GPERF " $@; +AM_V_GPERF_1 ?= + +AM_V_RM ?= $(AM_V_RM_$(V)) +AM_V_RM_ ?= $(AM_V_RM_$(AM_DEFAULT_VERBOSITY)) +AM_V_RM_0 ?= @echo " RM " $@; +AM_V_RM_1 ?= + +AM_V_CC ?= $(AM_V_CC_$(V)) +AM_V_CC_ ?= $(AM_V_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_CC_0 ?= @echo " CC " $@; +AM_V_CC_1 ?= + +AM_V_CCLD ?= $(AM_V_CCLD_$(V)) +AM_V_CCLD_ ?= $(AM_V_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_CCLD_0 ?= @echo " CCLD " $@; +AM_V_CCLD_1 ?= + +AM_V_EFI_CC ?= $(AM_V_EFI_CC_$(V)) +AM_V_EFI_CC_ ?= $(AM_V_EFI_CC_$(AM_DEFAULT_VERBOSITY)) +AM_V_EFI_CC_0 ?= @echo " EFI_CC " $@; +AM_V_EFI_CC_1 ?= + +AM_V_EFI_CCLD ?= $(AM_V_EFI_CCLD_$(V)) +AM_V_EFI_CCLD_ ?= $(AM_V_EFI_CCLD_$(AM_DEFAULT_VERBOSITY)) +AM_V_EFI_CCLD_0 ?= @echo " EFI_CCLD" $@; +AM_V_EFI_CCLD_1 ?= + +AM_V_P ?= $(AM_V_P_$(V)) +AM_V_P_ ?= $(AM_V_P_$(AM_DEFAULT_VERBOSITY)) +AM_V_P_0 ?= false +AM_V_P_1 ?= : + +AM_V_GEN ?= $(AM_V_GEN_$(V)) +AM_V_GEN_ ?= $(AM_V_GEN_$(AM_DEFAULT_VERBOSITY)) +AM_V_GEN_0 ?= @echo " GEN " $@; +AM_V_GEN_1 ?= + +AM_V_lt ?= $(AM_V_lt_$(V)) +AM_V_lt_ ?= $(AM_V_lt_$(AM_DEFAULT_VERBOSITY)) +AM_V_lt_0 ?= --silent +AM_V_lt_1 ?= + +INTLTOOL_V_MERGE ?= $(INTLTOOL_V_MERGE_$(V)) +INTLTOOL_V_MERGE_OPTIONS ?= $(intltool_v_merge_options_$(V)) +INTLTOOL_V_MERGE_ ?= $(INTLTOOL_V_MERGE_$(AM_DEFAULT_VERBOSITY)) +INTLTOOL_V_MERGE_0 ?= @echo " ITMRG " $@; +INTLTOOL_V_MERGE_1 ?= + +sd.substitutions = \ '|rootlibexecdir=$(rootlibexecdir)|' \ '|rootbindir=$(rootbindir)|' \ '|bindir=$(bindir)|' \ @@ -156,10 +248,9 @@ substitutions = \ '|binfmtdir=$(binfmtdir)|' \ '|modulesloaddir=$(modulesloaddir)|' -SED_PROCESS = \ +sd.substitution_keys := $(subst |,,$(shell printf '%s\n' $(sd.substitutions) | cut -d= -f1)) + +sd.SED_PROCESS = \ $(AM_V_GEN)$(MKDIR_P) $(dir $@) && \ - $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(substitutions)))) \ + $(SED) $(subst '|,-e 's|@,$(subst =,\@|,$(subst |',|g',$(sd.substitutions)))) \ < $< > $@ - - -include $(topsrcdir)/build-aux/Makefile.tail.mk |