NONE := $(shell touch .config) include .config TOP_DIR := $(CURDIR) PATHS := CONFIG_PATH := $(CURDIR) CONFIG_FILE := .config CONFIG := $(CONFIG_PATH)/$(CONFIG_FILE) DEPLOY_FOLDER := deploy DEPLOY := $(CONFIG_PATH)/$(DEPLOY_FOLDER) HANDOUT_FOLDER := handouts HANDOUT :=$(DEPLOY)/$(HANDOUT_FOLDER) BUILD_COMMAND := pdflatex BUILD_DEBUG := -halt-on-error BUILD_ARGS := $(BUILD_DEBUG) --interaction=patchmode BUILD := $(BUILD_COMMAND) $(BUILD_ARGS) KCONFIG_PATH := ./kconfig-frontends/frontends KCONFIG := $(KCONFIG_PATH)/conf/conf KMCONFIG := $(KCONFIG_PATH)/mconf/mconf LATEX_CONFIG := $(TOP_DIR)/config/ MASTER_PRES := tmp_master_pres.tex MATSER_HANDOUT := tmp_master_handout.tex EXCLUDE_PATH := grep -v ./kconfig-frontends | grep -v ./kernel-devel/module-basics/vain | grep -v ./kernel-devel/module-basics/vain_pci | grep -v ./kernel-devel/module-basics/vain_plat # Sesrch for all folders with Makfile MAKE_FILES = $(shell find . -mindepth 2 -name Makefile | $(EXCLUDE_PATH)) PATHS = $(dir $(MAKE_FILES)) FIRST_FOLDER_LEVEL := $(shell find . -maxdepth 1 -type d | $(EXCLUDE_PATH)) export build: mkdir -p $(HANDOUT) for dir in $(PATHS) ; do \ ($(MAKE) -C $$dir -f $(CURDIR)/modules.mk $@ ); \ done ifeq ($(CONFIG_BUILD_MASTER_PRES),y) ($(MAKE) -C ./ -f Makefile build_master_pres ); endif menuconfig: $(KMCONFIG) Kconfig config: $(KCONFIG) --oldaskconfig Kconfig oldconfig: cp $@ .config $(KCONFIG) --oldconfig Kconfig clean: @echo "Cleaning" rm -rf $(DEPLOY_FOLDER) for dir in $(PATHS) ; do \ ($(MAKE) -C $$dir -f $(CURDIR)/modules.mk $@ ); \ done mrproper distclean: @echo "distclean" rm -f .config rm -f .config.old rm -rf $(DEPLOY_FOLDER) for dir in $(PATHS) ; do \ ($(MAKE) -C $$dir -f $(CURDIR)/modules.mk clean ); \ done build_master_pres: @echo "Build masterpres with:"$(obj-y) `echo "\input{configmasterpres}" > $(MASTER_PRES)` for dir in $(PATHS) ; do \ ($(MAKE) -C $$dir -f $(CURDIR)/modules.mk build_master_pres ); \ done `echo "\input{tailmasterpres}" >> $(MASTER_PRES)` $(BUILD) $(MASTER_PRES) cp $(subst .tex,.pdf,$(MASTER_PRES)) $(DEPLOY)/ build_master_handout: @echo "Build matser handout"$(obj-handout-y) .PHONY: config oldconfig menuconfig build clean mrproper distclean