diff options
Diffstat (limited to 'common.once.mk')
-rw-r--r-- | common.once.mk | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/common.once.mk b/common.once.mk new file mode 100644 index 0000000..fc0aeb5 --- /dev/null +++ b/common.once.mk @@ -0,0 +1,38 @@ +# 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/>. + +# Make directories +dirs += $(addprefix $(DESTDIR),$(bindir) $(libexedir) $(datarootdir) $(datadir) $(sysconfdir) $(sharedstatedir) $(localstatedir) $(runstatedir) $(pkgdatadir) $(pkglibexecdir)) +$(sort $(dirs)): + $(MKDIRS) $@ + +# Have GCC generate header dependency info (pair this with `-include` +# in common.each.mk +ifneq ($(AUTODEPS),) +CFLAGS += -MD -MF $(patsubst $(@D)/%.o,$(@D)/.%.mk,$@) -MP +endif + +CPPFLAGS += -I$(topobjdir) +M4FLAGS += -I$(topobjdir) + +all_clean_files += $(topobjdir)/config.sh $(topobjdir)/config.h +config_vars = $(shell $(SED) -n 's/^\s*\([a-z][^ !?:=]*\).*=.*/\1/p' $(topobjdir)/config.mk) PACKAGE VERSION DESTDIR +$(topobjdir)/config.sh: $(topobjdir)/config.mk + $(PRINTF) '%s=%s\n' $(foreach v,$(config_vars),$v $($v)) | LC_ALL=C $(SORT) > $@ +$(topobjdir)/config.h: $(topobjdir)/config.sh + . $(abspath $<) && $(PRINTF) '#define %s "%s"\n' $(foreach v,$(config_vars),$v '$($v)') PACKAGE_UPPER $${PACKAGE^^} | LC_ALL=C $(SORT) > $@ + +# Should be on by default +.DELETE_ON_ERROR: |