forked from Imagelibrary/rtems
host programs are now compiled with automake generated rules. This was done after discussions with Ralf Corsepius and Eric Norum.
118 lines
3.3 KiB
INI
118 lines
3.3 KiB
INI
#
|
|
# $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))
|
|
|
|
# Pull in the desired "target" compiler
|
|
# Programs built on the host use automake generated rules.
|
|
# This will not change $(ARCH) -- binaries will still be place as per target
|
|
include ${CONFIG.$(TARGET_ARCH).CC}
|
|
ifeq (${DEPEND},$(wildcard ${DEPEND}))
|
|
include ${DEPEND} # pull in dependencies if they exist
|
|
endif
|
|
|
|
#
|
|
# Builtin targets for compilation variants
|
|
#
|
|
debug:
|
|
$(MAKE) -f $(MAKEFILE) MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-debug" \
|
|
"CFLAGS_DEBUG=$(CFLAGS_DEBUG_V)" \
|
|
"CFLAGS_OPTIMIZE=$(CFLAGS_DEBUG_OPTIMIZE_V)" \
|
|
"LDFLAGS_DEBUG=$(LDFLAGS_DEBUG_V)" $(TARGET_VA)
|
|
|
|
profile:
|
|
$(MAKE) -f $(MAKEFILE) \
|
|
MAKEFILE=$(MAKEFILE) "ARCH=${TARGET_ARCH}-profile" \
|
|
"CFLAGS_PROFILE=$(CFLAGS_PROFILE_V)" \
|
|
"LDFLAGS_PROFILE=$(LDFLAGS_PROFILE_V)" $(TARGET_VA)
|
|
|
|
#
|
|
# VARIANT_VA will convert our ${ARCH} back into "" or "debug" or "profile".
|
|
# Handy when one makefile wants to hop over into a peer's tree and
|
|
# build something "the same" way.
|
|
#
|
|
|
|
VARIANT-$(TARGET_ARCH)-v =
|
|
VARIANT-$(TARGET_ARCH)-debug-v = debug
|
|
VARIANT-$(TARGET_ARCH)-profile-v = profile
|
|
|
|
VARIANT_VA = $(VARIANT-$(ARCH)-v)
|
|
|
|
#
|
|
# TARGET_VA will convert $@ (expected to be 'debug' or 'profile' etc.)
|
|
# into "" or "install" as appropriate.
|
|
# Used for variant recursion.
|
|
#
|
|
|
|
TARGET_debug_V = all
|
|
TARGET_profile_V = all
|
|
|
|
TARGET_VA = $(TARGET_$@_V)
|
|
|
|
#
|
|
# LIBSUFFIX_VA, will "index" into LIBSUFF-*-v macros and
|
|
# convert our ${ARCH} back into .a or _g.a or _p.a based on debug or profile.
|
|
# Useful for installing libraries.
|
|
#
|
|
|
|
LIBSUFFIX_$(TARGET_ARCH)_V=
|
|
LIBSUFFIX_$(TARGET_ARCH)-debug_V=_g
|
|
LIBSUFFIX_$(TARGET_ARCH)-profile_V=_p
|
|
|
|
LIB_VARIANT=$(LIBSUFFIX_$(ARCH)_V)
|
|
LIBSUFFIX_VA = $(LIB_VARIANT).a
|
|
|
|
#
|
|
# Builtin clean and distclean rules
|
|
# Individual makefiles can add stuff via CLEAN_ADDITIONS and CLOBBER_ADDITIONS
|
|
# If desperate to save something, they can override CLEAN_OS, CLEAN_CC, etc.
|
|
#
|
|
|
|
clean-am: clean-generic
|
|
-$(RM) -r $(CLEAN_OS) $(CLEAN_CC) $(CLEAN_DEPEND)
|
|
-$(RM) -r $(VARIANTS)
|
|
|
|
distclean-am: distclean-generic clean-am
|
|
-$(RM) -r $(CLOBBER_OS) $(CLOBBER_CC) $(CLOBBER_DEPEND)
|
|
|
|
preinstall-am:
|
|
preinstall: preinstall-am
|
|
|
|
distclean: distclean-am
|
|
-$(RM) config.status
|
|
clean: clean-am
|
|
|
|
.PHONY: distclean distclean-am
|
|
.PHONY: clean clean-am
|