From 8499fb934172e9047b40cff8d06b69c7cde62de3 Mon Sep 17 00:00:00 2001 From: Jan Pokorný Date: Sep 12 2014 19:30:34 +0000 Subject: ccs-flatten/Makefile: reorg, setup.cfg decides parameters Signed-off-by: Jan Pokorný --- diff --git a/__root__/ccs-flatten/Makefile b/__root__/ccs-flatten/Makefile index 8e365b5..3bcf773 100644 --- a/__root__/ccs-flatten/Makefile +++ b/__root__/ccs-flatten/Makefile @@ -1,4 +1,10 @@ -.PHONY: all clean metadata full +# Copyright 2014 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 TARGET = ccs_flatten OBJS = flatten.o reslist.o resrules.o restree.o xmlconf.o @@ -7,28 +13,54 @@ ifdef DEBUG CFLAGS += -g -ggdb endif -RAWMETADATA_EXT = metadata -RA_DIR ?= /usr/share/cluster -ifneq (nocman,0) - CFLAGS += -DRAWMETADATA_EXT=\"${RAWMETADATA_EXT}\" -endif +SETUP_MAKEFILE = Makefile.setup +SETUP_CFG = ../setup.cfg + +ccs_flatten ?= /usr/bin/ccs_flatten +ra_metadata ?= /usr/share/cluster +ra_metadata_ext ?= metadata + +-include ${SETUP_MAKEFILE} -CFLAGS += $(shell pkg-config --cflags libxml-2.0) +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 $$(find ${RA_DIR} -maxdepth 1 -type f -name '*.sh' -printf '%f\n'); do \ - /bin/bash ${RA_DIR}/$$f meta-data > $$f.${RAWMETADATA_EXT}.tmp \ - && test -s $$f.${RAWMETADATA_EXT}.tmp \ - && mv $$f.${RAWMETADATA_EXT}{.tmp,} \ - || ${RM} -- $$f.${RAWMETADATA_EXT}.tmp; \ + for f in $$(find ${ra_metadata} -maxdepth 1 -type f -name '*.sh' \ + -printf '%f\n'); 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} + clean: - ${RM} -- ${TARGET} ${OBJS} *.${RAWMETADATA_EXT}{.tmp,} + ${RM} -- ${TARGET} ${OBJS} config.h *.${ra_metadata_ext}{.tmp,} + +# preferably take values from ../setup.cfg (abuse the similarity of decls)