44 lines
1.2 KiB
Makefile
44 lines
1.2 KiB
Makefile
# Default target
|
|
.DEFAULT_GOAL = all
|
|
|
|
include ../tools/common.mk
|
|
|
|
# assemble list of all apps
|
|
APPS = $(filter app%/, $(wildcard */))
|
|
|
|
IMGBUILDER = $(BUILDDIR)/imgbuilder
|
|
|
|
# (Achtung: ist auch in ../Makefile definiert!)
|
|
INITRD = $(BUILDDIR)/initrd.img
|
|
|
|
all: $(INITRD)
|
|
|
|
# Rezepte fuer Apps (Unterverzeichnisse)
|
|
$(APPS): $(BUILDDIR)/init.o
|
|
$(VERBOSE) $(MAKE) -C $@ -f ../Makefile.app
|
|
|
|
# recipe for compiling imgbuilder
|
|
$(IMGBUILDER): imgbuilder.cc $(MAKEFILE_LIST)
|
|
@echo "CC $@"
|
|
@if test \( ! \( -d $(@D) \) \) ;then mkdir -p $(@D);fi
|
|
$(VERBOSE) $(CXX) -std=c++23 -o $@ $<
|
|
|
|
# recipe for building the final oostubs image
|
|
$(INITRD): $(APPS) $(IMGBUILDER)
|
|
@echo "IMGBUILD $@"
|
|
@if test \( ! \( -d $(@D) \) \) ;then mkdir -p $(@D);fi
|
|
$(VERBOSE) $(IMGBUILDER) $(addsuffix $(BUILDDIR)/app.img, $(APPS)) > $@
|
|
|
|
lint::
|
|
$(VERBOSE) $(foreach APP,$(APPS),$(MAKE) -C $(APP) -f ../Makefile.app lint && ) true
|
|
|
|
tidy::
|
|
$(VERBOSE) $(foreach APP,$(APPS),$(MAKE) -C $(APP) -f ../Makefile.app tidy && ) true
|
|
|
|
# clean all apps additionally to default clean recipe from common.mk
|
|
clean::
|
|
$(VERBOSE) $(foreach APP,$(APPS),$(MAKE) -C $(APP) -f ../Makefile.app clean && ) true
|
|
|
|
.PHONY: all clean $(APPS)
|
|
|