summaryrefslogtreecommitdiff
path: root/rvs/common.once.mk
blob: fc0aeb51e67fb927f86a4dca630058a6d2ca09ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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: