summaryrefslogtreecommitdiffstats
path: root/c/src/make/leaf.cfg
blob: e0e6cfab0794ce8933e3a0b8b1a549a60ecd973a (plain) (blame)
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
#
#  $Id$
#
# make/leaf.cfg
#
#   Make(1) configuration file include'd by all leaf-node Makefiles
#

#
# list of all known managers
# This list is used, along with $(MANAGERS) (set by app makefile)
#   to build the list of *not wanted* drivers.
#
# ref: target compiler config file for usage
#

MANAGER_LIST=dpmem event io msg mp part region sem signal timer rtmon ext

# Convert *real* spellings in $(MANAGERS) (set
#   in application makefile) to their "correct" name.
# (I hate abbreviations :-)

MANAGERS := $(patsubst message,            msg,   $(MANAGERS))
MANAGERS := $(patsubst multi_processor,    mp,    $(MANAGERS))
MANAGERS := $(patsubst partition,          part,  $(MANAGERS))
MANAGERS := $(patsubst rate_monotonic,     rtmon, $(MANAGERS))
MANAGERS := $(patsubst semaphore,          sem,   $(MANAGERS))
MANAGERS := $(patsubst dual_ported_memory, dpmem, $(MANAGERS))
MANAGERS := $(patsubst extension,          ext,   $(MANAGERS))

# allow 'all' to mean all managers
MANAGERS := $(patsubst all, $(MANAGER_LIST), $(MANAGERS))

# and finally rip out duplicates
MANAGERS := $(sort $(MANAGERS))

# List (possibly empty) of required managers
# We require:
#    region  -- used by lib/libcsupport for malloc()
#    ext     -- used by libc for libc reentrancy hooks

MANAGERS_REQUIRED=region ext sem

# Create a RTEMS executable based on MANAGERS which was set in
#  app's Makefile

MANAGERS_NOT_WANTED=$(filter-out $(MANAGERS) \
	$(MANAGERS_REQUIRED), $(MANAGER_LIST))

# Start file must be one of
#    $(PROJECT_RELEASE)/lib/start$(LIB_VARIANT).o
#    $(PROJECT_RELEASE)/lib/asmiface$(LIB_VARIANT).o
# It defaults to start.o, but an app can override it.
ifeq ($(START_BASE),)
  START_FILE=
else
  START_FILE=$(PROJECT_RELEASE)/lib/$(START_BASE)$(LIB_VARIANT).o
endif

# Allow user to override link commands (to build a prom image, perhaps)
ifndef LINKCMDS
LINKCMDS=$(PROJECT_RELEASE)/lib/linkcmds
endif