blob: 03bc0148508e28fd2d1dd6cc61f5f7d72d3392d2 (
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
# Copyright 2015 Red Hat, Inc.
# Part of clufter project
# Licensed under GPLv2+ (a copy included | http://gnu.org/licenses/gpl-2.0.txt)
# Intended way of building is via setup.py, this is primarily for maintenance!
.PHONY: all clean metadata full install symlink deepclean
TARGET = ccs_flatten
OBJS = flatten.o reslist.o resrules.o restree.o xmlconf.o
CFLAGS += -Wall
ifdef DEBUG
CFLAGS += -g -ggdb
else
CFLAGS += -DNDEBUG
endif
SETUP_MAKEFILE = Makefile.setup
SETUP_CFG = ../setup.cfg
ccs_flatten ?= /usr/bin/ccs_flatten
ra_metadata ?= /usr/share/cluster
ra_metadata_ext ?= metadata
# preferably take values from ../setup.cfg (abuse the similarity of decls)
-include ${SETUP_MAKEFILE}
CFLAGS += $(shell pkg-config --cflags libxml-2.0) #-std=c99
LDFLAGS += $(shell pkg-config --libs libxml-2.0)
all: ${TARGET}
${TARGET}: ${OBJS}
${CC} ${CFLAGS} $^ -o $@ ${LDFLAGS}
${OBJS}: ${SETUP_MAKEFILE} config.h
%.h: ${SETUP_MAKEFILE}
%.h: %.h.in
sed \
-e 's|@RA_METADATA@|${ra_metadata}|g' \
-e 's|@RA_METADATA_EXT@|${ra_metadata_ext}|g' \
$< > $@
${SETUP_MAKEFILE}: Makefile
${SETUP_MAKEFILE}: $(wildcard ${SETUP_CFG}) | /dev/null
sed -n \
-e '/\[pkg_prepare\]/b1;d' \
-e ':1;n;/\[.*\]/d;/%{.\+}/s|\([^%]\+\)%\({.*}\)s\?\(.*\)|\1$$\2\3|;p;b1' \
$< > $@
metadata:
for f in $$( \
cd ${ra_metadata}; \
ls -1 | xargs grep --exclude '*.metadata' --exclude 'ocf-*' -Fl -- meta-data \
); do \
/bin/bash ${ra_metadata}/$$f meta-data > $$f.${ra_metadata_ext}.tmp \
&& test -s $$f.${ra_metadata_ext}.tmp \
&& mv $$f.${ra_metadata_ext}{.tmp,} \
|| ${RM} -- $$f.${ra_metadata_ext}.tmp; \
done
full: all metadata
install: full
install ${TARGET} ${PREFIX}/${ccs_flatten}
install *.${ra_metadata_ext} ${PREFIX}/${ra_metadata}
symlink:
ln -fs ../build/ccs_flatten .
clean:
${RM} -- ${TARGET} ${OBJS} config.h *.${ra_metadata_ext}.tmp
deepclean: clean
${RM} -- *.${ra_metadata_ext}
|