Files
moslab-code/src/l4/pkg/Makefile
2025-09-12 15:55:45 +02:00

118 lines
4.1 KiB
Makefile

# GLOBAL Makefile for all packages
#
# DO NOT EDIT -- Automatically generated by Adam's configuration system!!!
#
L4DIR ?= ..
ifneq ($(S),)
ALL_SUBDIRS := $(shell echo $(S) | tr ':,' ' ')
endif
all::
include $(L4DIR)/mk/Makeconf
ifneq ($(OBJ_BASE),)
include $(L4DIR)/mk/project.mk
PKGDEPS_IGNORE_MISSING :=
endif
#####################
# Rules begin.
#####################
# default make action is "all" - build all packages
#
.PHONY: all
.PHONY: rm-old-links
PURGE_INC_MESSAGE =echo "=== Purging pending links in $(L4DIR)/include ==="
PURGE_LIB_MESSAGE =echo "=== Purging pending links in $(L4DIR)/lib ==="
# Check package dependencies.
# CHECK_PKGS: if undefined, check all packages,
# otherwise gives a list of space separated packages to check
# CHECK_FULL: if set rebuild for every new package check
# (ccache recommended when using this flag)
depcheck:
$(VERBOSE)set -e; \
$(RM) -r $(filter-out $(OBJ_BASE)/pkg/Makefile, \
$(wildcard $(OBJ_BASE)/pkg/*)); \
for checkpkg in $(filter-out $(CHECK_GOOD),$(if $(CHECK_PKGS),$(CHECK_PKGS),$(BUILD_SUBDIRS))); do \
echo ==========================================================; \
echo "Deleting all pkgs in build-dir"; \
$(RM) -r $(OBJ_BASE)/lib $(OBJ_BASE)/bin $(OBJ_BASE)/include \
$(OBJ_BASE)/pc $(OBJ_BASE)/pkg/.Package.deps \
$(OBJ_BASE)/pkg/.Package.deps.pkgs; \
$(if $(CHECK_FULL),$(RM) -r $(OBJ_BASE)/pkg;,) \
echo "Done"; \
echo ----------------------------------------------------------; \
echo "Trying standalone build of '$$checkpkg'"; \
$(MAKE) -C $(L4DIR) O=$(OBJ_BASE) \
--no-print-directory syncconfig; \
echo $(MAKE) O=$(OBJ_BASE) --no-print-directory $$checkpkg; \
$(MAKE) O=$(OBJ_BASE) --no-print-directory $$checkpkg \
|| (echo "Failed package: $$checkpkg"; \
echo "Good package(s): CHECK_GOOD=\"$(CHECK_GOOD) $$PKGDONE\"";\
exit 1) || exit 1; \
PKGDONE="$$PKGDONE $$checkpkg"; \
done; \
echo "Packages tested: $(CHECK_GOOD) $$PKGDONE"
depgraph: depsrcgraph depobjgraph
depsrcgraph: $(PKGDIR_OBJ)/depsrc.svg $(PKGDIR_OBJ)/depsrc.ps $(PKGDIR_OBJ)/depsrc.pdf $(PKGDIR_OBJ)/depsrc.reduced.svg $(PKGDIR_OBJ)/depsrc.reduced.ps
depobjgraph: $(PKGDIR_OBJ)/depobj.svg $(PKGDIR_OBJ)/depobj.ps $(PKGDIR_OBJ)/depobj.pdf $(PKGDIR_OBJ)/depobj.reduced.svg $(PKGDIR_OBJ)/depobj.reduced.ps
%.ps: %.dot
@$(GEN_MESSAGE)
$(VERBOSE)dot -Tps -o $@ $<
%.pdf: %.dot
@$(GEN_MESSAGE)
$(VERBOSE)dot -Tpdf -o $@ $<
%.svg: %.dot
@$(GEN_MESSAGE)
$(VERBOSE)dot -Tsvg -o $@ $<
%.reduced.dot: %.dot
@$(GEN_MESSAGE)
$(VERBOSE)tred $< > $@
$(PKGDIR_OBJ)/depsrc.dot: FORCE
@$(GEN_MESSAGE)
$(VERBOSE)$(PKGDEPS_CMD) dot $(L4DIR)/pkg > $@
$(PKGDIR_OBJ)/depobj.dot: FORCE
@$(GEN_MESSAGE)
$(VERBOSE)$(L4DIR)/tool/bin/pkgdepsobj $(L4DIR_ABS) $(OBJ_BASE) $@
.PHONY: TAGS tags depsrcgraph depobjgraph depgraph depcheck
.PHONY: $(foreach ext, .bin .lib .include .idl .headers,addsuffix $(ext), $(BUILD_SUBDIRS))
clean cleanall::
$(VERBOSE)$(MAKE) rm-old-links
del-backup:
$(VERBOSE)rm -i `find . -name "*~"` `find . -name "#*#"`
rm-old-links:
@$(PURGE_INC_MESSAGE)
$(VERBOSE)test ! -d $(L4DIR)/include || \
find $(L4DIR)/include -type l -a ! -xtype f -a ! -xtype d \
-exec rm $(if $(VERBOSE),,-v) '{}' ';'
@$(PURGE_LIB_MESSAGE)
$(VERBOSE)test ! -d $(L4DIR)/lib || \
find $(L4DIR)/lib -type l -a ! -xtype f -a ! -xtype d \
-exec rm $(if $(VERBOSE),,-v) '{}' ';'
# global defines
help::
@echo "Specify one of the following targets:"
@echo "del-backup - remove temporary file in this tree"
@echo 'rm-old-links - remove invalid symlinks in $$(L4DIR)/lib, $$(L4DIR)/include'
@echo "help - this help"