1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
# -*- Makefile -*-
#
# DROPS (Dresden Realtime OPerating System) Component
#
# Makefile-Template for directories containing only subdirs
#
# 05/2002 Jork Loeser <jork.loeser@inf.tu-dresden.de>
#include $(L4DIR)/mk/Makeconf
TARGET ?= $(patsubst %/Makefile,%,$(wildcard $(addsuffix /Makefile, \
idl src lib server examples doc)))
SUBDIR_TARGET := $(if $(filter doc,$(MAKECMDGOALS)),$(TARGET), \
$(filter-out doc,$(TARGET)))
all:: $(SUBDIR_TARGET) $(SUBDIRS)
install::
clean cleanall scrub::
$(VERBOSE)set -e; $(foreach d,$(TARGET), test -f $d/broken || \
if [ -f $d/Makefile ] ; then PWD=$(PWD)/$d $(MAKE) -C $d $@ $(MKFLAGS) $(MKFLAGS_$(d)); fi; )
install oldconfig txtconfig relink::
$(VERBOSE)set -e; $(foreach d,$(TARGET), test -f $d/broken -o -f $d/obsolete || \
if [ -f $d/Makefile ] ; then PWD=$(PWD)/$d $(MAKE) -C $d $@ $(MKFLAGS) $(MKFLAGS_$(d)); fi; )
# first the subdir-targets (this is were "all" will be build, e.g. in lib
# or server.
$(filter-out ptest,$(SUBDIR_TARGET)):
$(VERBOSE)test -f $@/broken -o -f $@/obsolete || \
if [ -f $@/Makefile ] ; then PWD=$(PWD)/$@ $(MAKE) -C $@ $(MKFLAGS) ; fi
# Second, the rules for going down into sub-pkgs with "lib" and "server"
# targets. Going down into sub-pkgs.
$(if $(SUBDIRS),$(if $(filter $@,idl include lib server examples doc),\
$(VERBOSE)set -e; for s in $(SUBDIRS); do \
PWD=$(PWD)/$$s $(MAKE) -C $$s $@ $(MKFLAGS); done ))
idl include lib server examples doc:
# the test target is something special:
TEST_DEPENDS ?= server
# check if the test directory exists, check if its broken or obsolete
# to be able to specify additional dependencies, we make it a :: target
ptest:: $(TEST_DEPENDS)
$(VERBOSE)test -f $@/broken -o -f $@/obsolete || \
if [ -f $@/Makefile ] ; then PWD=$(PWD)/$@ $(MAKE) -C $@ $(MKFLAGS) ; fi
install-symlinks:
$(warning target install-symlinks is obsolete. Use 'include' instead (warning only))
$(VERBOSE)$(MAKE) include
help::
@echo " all - build subdirs: $(SUBDIR_TARGET)"
$(if $(filter doc,$(TARGET)), \
@echo " doc - build documentation")
@echo " scrub - call scrub recursively"
@echo " clean - call clean recursively"
@echo " cleanall - call cleanall recursively"
@echo " install - build subdirs, install recursively then"
@echo " oldconfig - call oldconfig recursively"
@echo " txtconfig - call txtconfig recursively"
.PHONY: $(TARGET) all clean cleanall help install oldconfig txtconfig
|