all: fiasco l4re
+help:
+ @echo "Supported targets:"
+ @echo " all - Build all"
+ @echo " fiasco - Build Fiasco kernel"
+ @echo " fiasco-config - Reconfigure Fiasco kernel"
+ @echo " l4re - Build L4 runtime environment"
+ @echo " l4re-config - Reconfigure L4 runtime environment"
+ @echo " hello - Build image with hello entry"
+
.NOTPARALLEL:
+########## Fiasco ##########
+
+.PHONY: fiasco
fiasco: fiasco/globalconfig.out
- $(MAKE) -C $(CURDIR)/fiasco
+ $(MAKE) -C fiasco
+.PHONY: fiasco-config
fiasco-config: fiasco/globalconfig.out
ifeq ($(MAKECMDGOALS),fiasco-config)
.PHONY: fiasco/globalconfig.out
endif
-fiasco/globalconfig.out: $(CURDIR)/fiasco
- $(MAKE) -C $(CURDIR)/fiasco config
+fiasco/globalconfig.out: fiasco/.stamp-jh
+ $(MAKE) -C $(@D) config
+ touch $@
-$(CURDIR)/fiasco:
- $(MAKE) -C ../../l4/kernel/fiasco BUILDDIR=$@
+fiasco/.stamp-jh:
+ $(MAKE) -C ../../l4/kernel/fiasco BUILDDIR=$(CURDIR)/$(@D)
+ touch $@
+
+########## L4Re ##########
L4RE_PKGS = acpica bootstrap cxx_thread drivers drivers-frst fb-drv \
hello input io/io io/libio io/libio-direct io/libio-io io/libvbus \
rtc shmc x86emu
.PHONY: l4re
-l4re: l4/.kconfig
- $(MAKE) -C l4 #S="$(L4RE_PKGS:%=pkg/%)"
+l4re: l4re/.kconfig
+ $(MAKE) -C l4re #S="$(L4RE_PKGS:%=pkg/%)"
-l4re-config: l4/.kconfig
+.PHONY: l4re-config
+l4re-config: l4re/.kconfig
-ifeq ($(MAKECMDGOALS),l4-config)
-.PHONY: l4/.kconfig
+ifeq ($(MAKECMDGOALS),l4re-config)
+.PHONY: l4re/.kconfig
endif
-l4/.kconfig: $(CURDIR)/l4
- $(MAKE) -C l4 config
+l4re/.kconfig: l4re/.stamp-jh
+ $(MAKE) -C $(@D) config
+ touch $@
+
+l4re/.stamp-jh:
+ $(MAKE) -C ../../l4/l4 B=$(CURDIR)/$(@D)
+ touch $@
-$(CURDIR)/l4:
- $(MAKE) -C ../../l4/l4 B=$@
+########## Application ##########
.PHONY: hello
hello:
- $(MAKE) -C l4 MODULE_SEARCH_PATH=$(CURDIR)/fiasco E=hello elfimage
+ $(MAKE) -C l4re MODULE_SEARCH_PATH=$(CURDIR)/fiasco E=hello elfimage