#!/usr/bin/make -f

BOOTSCR = /boot/boot.scr

SRC =  $(wildcard src/*.conf)
UNUSED =  $(wildcard src/*.unused)
USE =  $(subst use-,%-, $(wildcard use-*))
USE_UNUSED = $(foreach conf,$(USE), $(conf).unused)
SRC += $(sort $(filter $(USE_UNUSED),$(UNUSED)))

DIS =  $(wildcard disable-*)
ENA += $(wildcard enable-*)

NEG =  $(subst enable-,%disable-,$(ENA))
NEG += $(subst disable-,%enable-,$(DIS))
NCONF = $(foreach conf,$(NEG), $(conf).conf)
FSRC = $(sort $(filter-out $(NCONF),$(SRC)))

.PHONY:	all force enable-% disable-%

all: $(BOOTSCR)


help:
	@echo ""
	@echo "	make          --- Generate boot.scr file if is needed"
	@echo "	make force    --- Generate boot.scr file unconditionally"
	@echo ""
	@echo "	make enable-wifi|enable-bluetooth    --- Enable device"
	@echo "	make disable-wifi|disable-bluetooth  --- Disable device"
	@echo "	make use-gpro01                      --- Use feature"
	@echo "	make unuse-gpro01                    --- Disable feature"
	@echo ""



$(BOOTSCR): $(SRC)
	@sed '/^[[:blank:]]*\(#[^|].*\)*$$/d' $(FSRC) > /tmp/boot.cmd
	@mkimage -C none -A arm -T script -d /tmp/boot.cmd $@
	@rm -f /tmp/boot.cmd


force:
	@$(MAKE) -B all

enable-%:
	@rm -f $(subst enable-,disable-,$@)
	@find src -name \*$@.conf -exec touch $@ \;
	@find src -name \*$(subst enable-,disable-,$@).conf -exec touch $@ \;
	@if [ -z "$$SKIP_BUILD" ]; then  $(MAKE) force; fi

disable-%:
	@rm -f $(subst disable-,enable-,$@)
	@find src -name \*$@.conf -exec touch $@ \;
	@find src -name \*$(subst disable-,enable-,$@).conf -exec touch $@ \;
	@if [ -z "$$SKIP_BUILD" ]; then  $(MAKE) force; fi

use-%:
	@F=`find src -name \*$(patsubst use-%,-%,$@).unused|sed 's#src/##;s#\.unused$$##'` &&\
	 if [ -z "$${F}" ]; then echo "Option $@ doesn't exist"; false; fi &&\
	 LEVEL=`echo "$${F}" | cut -d"-" -f 1` &&\
	 if [ -z "$${F}" ]; then echo "Invalid option $@"; false; fi &&\
	 RM=`find src -name $${LEVEL}-\*.unused | sed 's#src/[^-]\+-#use-#;s#\.unused$$##'` &&\
	 if [ -n "$${RM}" ]; then rm -f $${RM}; fi &&\
	 touch $@
	@if [ -z "$$SKIP_BUILD" ]; then  $(MAKE) force; fi

unuse-%:
	@rm -f $(patsubst unuse-%,use-%,$@)
	@if [ -z "$$SKIP_BUILD" ]; then  $(MAKE) force; fi
