source: rtems/make/leaf.cfg @ 6b9aaf7

4.104.114.84.95
Last change on this file since 6b9aaf7 was 97e2729d, checked in by Joel Sherrill <joel.sherrill@…>, on 11/23/98 at 17:38:09

Added --disable-multiprocessing flag and modified a lot of files to make
it work.

  • Property mode set to 100644
File size: 6.3 KB
Line 
1#
2#  $Id$
3#
4# make/leaf.cfg
5#
6#   Make(1) configuration file include'd by all leaf-node Makefiles
7#
8
9# get most stuff done
10
11# include $(RTEMS_ROOT)/make/main.cfg
12
13#
14# list of all known managers
15# This list is used, along with $(MANAGERS) (set by app makefile)
16#   to build the list of *not wanted* drivers.
17#
18# ref: target compiler config file for usage
19#
20
21MANAGER_LIST=dpmem event io msg mp part region sem signal timer rtmon ext
22
23# Convert *real* spellings in $(MANAGERS) (set
24#   in application makefile) to their "correct" name.
25# (I hate abbreviations :-)
26
27MANAGERS := $(patsubst message,            msg,   $(MANAGERS))
28MANAGERS := $(patsubst multi_processor,    mp,    $(MANAGERS))
29MANAGERS := $(patsubst partition,          part,  $(MANAGERS))
30MANAGERS := $(patsubst rate_monotonic,     rtmon, $(MANAGERS))
31MANAGERS := $(patsubst semaphore,          sem,   $(MANAGERS))
32MANAGERS := $(patsubst dual_ported_memory, dpmem, $(MANAGERS))
33MANAGERS := $(patsubst extension,          ext,   $(MANAGERS))
34
35# allow 'all' to mean all managers
36MANAGERS := $(patsubst all, $(MANAGER_LIST), $(MANAGERS))
37
38# and finally rip out duplicates
39MANAGERS := $(sort $(MANAGERS))
40
41# Pull in the desired compiler
42# This is almost always the "target" compiler.
43# But sometimes, you have to build something on the host.
44# Allow for that by allowing individual Makefiles specify $(USE_HOST_COMPILER)
45# This will not change $(ARCH) -- binaries will still be place as per target
46ifeq (,$(USE_HOST_COMPILER))
47   include ${CONFIG.$(TARGET_ARCH).CC}
48else
49   include $(CONFIG.$(HOST_ARCH).CC)
50endif
51ifeq (${DEPEND},$(wildcard ${DEPEND}))
52include ${DEPEND}                    # pull in dependencies if they exist
53endif
54
55#
56# Builtin targets for compilation variants
57#
58debug debug_install:
59        $(MAKE) -f $(MAKEFILE) MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-debug" \
60      "CFLAGS_DEBUG=$(CFLAGS_DEBUG_V)" \
61      "CFLAGS_OPTIMIZE=$(CFLAGS_DEBUG_OPTIMIZE_V)" \
62      "LDFLAGS_DEBUG=$(LDFLAGS_DEBUG_V)" $(TARGET_VA)
63
64profile profile_install:
65        $(MAKE) -f $(MAKEFILE) \
66      MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-profile" \
67      "CFLAGS_PROFILE=$(CFLAGS_PROFILE_V)" \
68      "LDFLAGS_PROFILE=$(LDFLAGS_PROFILE_V)" $(TARGET_VA)
69
70#
71# VARIANT_VA will convert our ${ARCH} back into "" or "debug" or "profile".
72#   Handy when one makefile wants to hop over into a peer's tree and
73#   build something "the same" way.
74#
75
76VARIANT-$(TARGET_ARCH)-v =
77VARIANT-$(TARGET_ARCH)-debug-v = debug
78VARIANT-$(TARGET_ARCH)-profile-v = profile
79
80VARIANT_VA = $(VARIANT-$(ARCH)-v)
81
82#
83# TARGET_VA will convert $@ (expected to be 'debug' or
84#     'debug_install' or 'profile' etc.)
85#   into "" or "install" as appropriate.
86#   Used for variant recursion.
87#
88
89TARGET_debug_V = all
90TARGET_profile_V = all
91
92TARGET_debug_install_V = install
93TARGET_profile_install_V = install
94
95TARGET_VA = $(TARGET_$@_V)
96
97#
98# LIBSUFFIX_VA, will "index" into LIBSUFF-*-v macros and
99#   convert our ${ARCH} back into .a or _g.a or _p.a based on debug or profile.
100#   Useful for installing libraries.
101#
102
103LIBSUFFIX_$(TARGET_ARCH)_V=
104LIBSUFFIX_$(TARGET_ARCH)-debug_V=_g
105LIBSUFFIX_$(TARGET_ARCH)-profile_V=_p
106
107LIB_VARIANT=$(LIBSUFFIX_$(ARCH)_V)
108LIBSUFFIX_VA = $(LIB_VARIANT).a
109
110get: $(SRCS) $(GET_ADDITIONS)
111
112#
113# Builtin clean and clobber rules
114# Individual makefiles can add stuff via CLEAN_ADDITIONS and CLOBBER_ADDITIONS
115# If desperate to save something, they can override CLEAN_OS, CLEAN_CC, etc.
116#
117
118clean:
119        $(RM) -r a.out core mon.out gmon.out $(CLEAN_OS) $(CLEAN_CC)
120        $(RM) -r $(CLEAN_PROTO) $(CLEAN_DEPEND) a.out
121        $(RM) -r $(VARIANTS) $(CLEAN_ADDITIONS) $(IMPORT_SOURCE)
122
123clobber: clean
124        -$(RCS_CLEAN)
125        $(RM) .#*
126        $(RM) -r $(CLOBBER_OS) $(CLOBBER_CC) $(CLOBBER_DEPEND)
127        $(RM) -r $(CLOBBER_ADDITIONS) a.out
128
129# Until RTEMS_CPU is removed from all the make configuration files,
130# this will need to be here to transform hppa1.1 into hppa1_1 to
131# make it a valid cpp symbol.  At some point in the near future,
132# targopts.h should not define RTEMS_CPU.  As best I can tell,
133# gcc cpp predefines eliminate the need for RTEMS_CPU_MODEL
134# on some families but not on others.  For example, the i386
135# family does not give us enough information from the predefines.
136RTEMS_CPU_DEFINED=$(subst .,_,$(RTEMS_CPU))
137
138# make the target dependent options file
139$(ARCH)/targopts.h-tmp: FORCE
140        @echo "/* target board dependent options file */"       >$@
141        @echo "/* automatically generated -- DO NOT EDIT!! */" >>$@
142        @echo                                                  >>$@
143        @echo "#ifndef __TARGET_OPTIONS_h"                     >>$@
144        @echo "#define __TARGET_OPTIONS_h"                     >>$@
145        @echo                                                  >>$@
146        @echo "#ifdef $(RTEMS_CPU_DEFINED)"                    >>$@
147        @echo "#undef $(RTEMS_CPU_DEFINED)"                    >>$@
148        @echo "#endif"                                         >>$@
149        @echo "#define $(RTEMS_CPU_DEFINED) 1"                 >>$@
150        @echo                                                  >>$@
151        @echo "#ifdef $(RTEMS_CPU_MODEL)"                      >>$@
152        @echo "#undef $(RTEMS_CPU_MODEL)"                      >>$@
153        @echo "#endif"                                         >>$@
154        @echo "#define $(RTEMS_CPU_MODEL) 1"                   >>$@
155        @echo                                                  >>$@
156        @echo "#ifdef $(RTEMS_BSP)"                            >>$@
157        @echo "#undef $(RTEMS_BSP)"                            >>$@
158        @echo "#endif"                                         >>$@
159        @echo "#define $(RTEMS_BSP) 1"                         >>$@
160        @echo                                                  >>$@
161        @$(make-target-options)
162ifeq (${RTEMS_USE_MACROS},yes)
163        @echo "#define USE_MACROS 1"                           >>$@
164else
165        @echo "#define USE_INLINES 1"                          >>$@
166endif
167ifeq ($(RTEMS_HAS_MULTIPROCESSING),yes)
168        @echo "#define RTEMS_MULTIPROCESSING 1"                >>$@
169endif
170ifeq ($(RTEMS_HAS_POSIX_API),yes)
171        @echo "#define RTEMS_POSIX_API 1"                      >>$@
172endif
173ifeq ($(RTEMS_USE_NEWLIB),yes)
174        @echo "#define RTEMS_NEWLIB 1"                         >>$@
175        @echo "#define MALLOC_PROVIDED 1"                      >>$@
176endif
177        @echo                                                  >>$@
178        @echo "#endif"                                         >>$@
179
180ifeq ($(RTEMS_BSP),bare)
181$(ARCH)/bsp_specs.tmp: FORCE
182        cp $(RTEMS_ROOT)/c/src/lib/libbsp/$(RTEMS_BSP_FAMILY)/bsp_specs $@
183else       
184$(ARCH)/bsp_specs.tmp: FORCE
185        cp $(RTEMS_ROOT)/c/src/lib/libbsp/$(RTEMS_CPU)/$(RTEMS_BSP_FAMILY)/bsp_specs $@
186endif
Note: See TracBrowser for help on using the repository browser.