You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

123 lines
3.2 KiB

#
# makefile to keep buildsystem helpers
#
# -----------------------------------------------------------------------------
# execute local scripts
define local-script
@if [ -x $(LOCAL_DIR)/scripts/$(1) ]; then \
$(LOCAL_DIR)/scripts/$(1) $(2) $(TARGET_DIR) $(BUILD_TMP); \
fi
endef
# -----------------------------------------------------------------------------
# apply patch sets
define apply_patches
l=`echo $(2)`; test -z $$l && l=1; \
for i in $(1); do \
if [ -d $$i ]; then \
for p in $$i/*; do \
echo -e "$(TERM_YELLOW)Applying $$p$(TERM_NORMAL)"; \
if [ $${p:0:1} == "/" ]; then \
patch -p$$l -i $$p; \
else \
patch -p$$l -i $(PATCHES)/$$p; \
fi; \
done; \
else \
echo -e "$(TERM_YELLOW)Applying $$i$(TERM_NORMAL)"; \
if [ $${i:0:1} == "/" ]; then \
patch -p$$l -i $$i; \
else \
patch -p$$l -i $(PATCHES)/$$i; \
fi; \
fi; \
done
endef
# -----------------------------------------------------------------------------
archives-list:
@rm -f $(BUILD_TMP)/$@
@make -qp | grep --only-matching '^\$(ARCHIVE).*:' | sed "s|:||g" > $(BUILD_TMP)/$@
DOCLEANUP ?= no
GETMISSING ?= no
archives-info: archives-list
@echo "[ ** ] Unused targets in make/archives.mk"
@grep --only-matching '^\$$(ARCHIVE).*:' make/archives.mk | sed "s|:||g" | \
while read target; do \
found=false; \
for makefile in make/*.mk; do \
if [ "$${makefile##*/}" = "archives.mk" ]; then \
continue; \
fi; \
if [ "$${makefile: -9}" = "-extra.mk" ]; then \
continue; \
fi; \
if grep -q "$$target" $$makefile; then \
found=true; \
fi; \
if [ "$$found" = "true" ]; then \
continue; \
fi; \
done; \
if [ "$$found" = "false" ]; then \
echo -e "[$(TERM_RED) !! $(TERM_NORMAL)] $$target"; \
fi; \
done;
@echo "[ ** ] Unused archives"
@find $(ARCHIVE)/ -maxdepth 1 -type f | \
while read archive; do \
if ! grep -q $$archive $(BUILD_TMP)/archives-list; then \
echo -e "[$(TERM_YELLOW) rm $(TERM_NORMAL)] $$archive"; \
if [ "$(DOCLEANUP)" = "yes" ]; then \
rm $$archive; \
fi; \
fi; \
done;
@echo "[ ** ] Missing archives"
@cat $(BUILD_TMP)/archives-list | \
while read archive; do \
if [ -e $$archive ]; then \
#echo -e "[$(TERM_GREEN) ok $(TERM_NORMAL)] $$archive"; \
true; \
else \
echo -e "[$(TERM_YELLOW) -- $(TERM_NORMAL)] $$archive"; \
if [ "$(GETMISSING)" = "yes" ]; then \
make $$archive; \
fi; \
fi; \
done;
@$(REMOVE)/archives-list
# -----------------------------------------------------------------------------
# FIXME - how to resolve variables while grepping makefiles?
patches-info:
@echo "[ ** ] Unused patches"
@for patch in $(PATCHES)/*; do \
if [ ! -f $$patch ]; then \
continue; \
fi; \
patch=$${patch##*/}; \
found=false; \
for makefile in make/*.mk; do \
if grep -q "$$patch" $$makefile; then \
found=true; \
fi; \
if [ "$$found" = "true" ]; then \
continue; \
fi; \
done; \
if [ "$$found" = "false" ]; then \
echo -e "[$(TERM_RED) !! $(TERM_NORMAL)] $$patch"; \
fi; \
done;
# -----------------------------------------------------------------------------
PHONY += archives-list
PHONY += archives-info
PHONY += patches-info