From bce7ec06c4234cb5713bb20350b3aff9010e3703 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 8 Feb 2016 16:36:45 -0500 Subject: (libretools) Refactor the build system. Avoid recursive make. This looks like a lot, but more things should "just work". We have `make dist` now! --- common.bottom.mk | 136 ------------------------------------------------------- 1 file changed, 136 deletions(-) delete mode 100644 common.bottom.mk (limited to 'common.bottom.mk') diff --git a/common.bottom.mk b/common.bottom.mk deleted file mode 100644 index e8b5493..0000000 --- a/common.bottom.mk +++ /dev/null @@ -1,136 +0,0 @@ -# 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 . - -include $(topsrcdir)/common.each.mk - - -# Aggregate variables - -# Add some more defaults to the *_files variables -clean_files += $(out_files) -conf_files += Makefile $(topoutdir)/config.mk -# Now namespace the *_files variables -define _am_add_to_module -_am_$(module)_src_files = $(addprefix $(srcdir)/,$(src_files)) -_am_$(module)_out_files = $(addprefix $(outdir)/,$(out_files)) -_am_$(module)_sys_files = $(addprefix $(DESTDIR),$(sys_files)) -_am_$(module)_clean_files = $(addprefix $(outdir)/,$(clean_files)) -_am_$(module)_slow_files = $(addprefix $(outdir)/,$(slow_files)) -_am_$(module)_conf_files = $(addprefix $(outdir)/,$(conf_files)) -_am_$(module)_dist_files = $(addprefix $(srcdir)/,$(dist_files)) -endef -$(eval $(_am_add_to_module)) - -# And add them to the $(parent)_*_files variables (if applicable) -define _am_add_to_parent -_am_%(parent)_src_files += $(_am_%(module)_src_files) -_am_%(parent)_out_files += $(_am_%(module)_out_files) -_am_%(parent)_sys_files += $(_am_%(module)_sys_files) -_am_%(parent)_clean_files += $(_am_%(module)_clean_files) -_am_%(parent)_slow_files += $(_am_%(module)_slow_files) -_am_%(parent)_conf_files += $(_am_%(module)_conf_files) -_am_%(parent)_dist_files += $(_am_%(module)_dist_files) -endef -ifneq ($(parent),) -$(eval $(subst %(parent),$(parent),$(subst %(module),$(module),$(value _am_add_to_parent)))) -endif - -modules := $(modules) $(module) - - -# Do some per-module magic - -_am_phony = build install uninstall mostlyclean clean distclean maintainer-clean check - -.PHONY: $(addsuffix -%(module),$(_am_phony)) - -$(addsuffix -$(module),uninstall mostlyclean clean distclean maintainer-clean) :: - $(RM) -- $(sort $(_am_$@)) - $(RMDIRS) $(sort $(dir $(_am_$@))) 2>/dev/null || $(TRUE) - - -# Include Makefiles from other directories - -define _am_nl - - -endef -define _am_include_makefile -ifeq ($(filter $(abspath $1),$(included_makefiles)),) -include $(if $(call _am_is_subdir,.,$1),$(call _am_relto,.,$1),$(topoutdir)/$(call _am_relto,$(topoutdir),$1)) -endif -endef -$(eval \ - _am_NO_ONCE = y$(_am_nl)\ - $(foreach dir,$(subdirs),parent=$(module)$(_am_nl)$(call _am_include_makefile,$(outdir)/$(dir)/Makefile)$(_am_nl))\ - parent=dep$(_am_nl)\ - $(call _am_include_makefile,$(topoutdir)/$(dir)/Makefile)$(_am_nl)\ - _am_NO_ONCE = $(_am_NO_ONCE)) - - -# This only gets evaluated once, after all of the other Makefiles are read -ifeq ($(_am_NO_ONCE),) -# Empty module-level variables -outdir = /bogus -srcdir = /bogus -subdirs = -depdirs = -src_files = -out_files = -sys_files = -clean_files = -slow_files = -conf_files = -dist_files = - -ifeq ($(abspath .),$(abspath $(topoutdir))) -_am_all_clean_files += $(topoutdir)/$(PACKAGE)-$(VERSION).tar.gz -$(addsuffix -all,mostlyclean clean distclean maintainer-clean) :: - $(RM) -r -- $(topoutdir)/$(PACKAGE)-$(VERSION) -endif - -define _am_module_rules -# Constructive phony targets -build-%(module): $(_am_%(module)_out_files) -install-%(module): $(_am_%(module)_sys_files) -# Destructive phony targets -_am_uninstall-%(module) = $(_am_%(module)_sys_files)) -_am_mostlyclean-%(module) = $(filter-out $(_am_%(module)_slow_files) $(_am_%(module)_conf_files) $(_am_%(module)_dist_files),$(_am_%(module)_clean_files)) -_am_clean-%(module) = $(filter-out $(_am_%(module)_conf_files) $(_am_%(module)_dist_files),$(_am_%(module)_clean_files)) -_am_distclean-%(module) = $(filter-out $(_am_%(module)_dist_files),$(_am_%(module)_clean_files)) -_am_maintainer-clean-%(module) = $(_am_%(module)_clean_files) -endef -$(foreach module,$(modules),$(eval $(subst %(module),$(module),$(value _am_module_rules)))) - -# Alias each bare phony target to itself with the `-all` suffix -$(foreach t,$(_am_phony),$(eval $t: $t-all)) - -# Add the `dist` target -.PHONY: dist -dist: $(topoutdir)/$(PACKAGE)-$(VERSION).tar.gz -$(topoutdir)/$(PACKAGE)-$(VERSION).tar.gz: $(topoutdir)/$(PACKAGE)-$(VERSION) - $(TAR) czf $@ -C $(