# # $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)) # # LIBSUFFIX_VA, will "index" into LIBSUFF-*-v macros and # convert our ${ARCH} back into .a or _g.a or _p.a based on debug. # Useful for installing libraries. # LIBSUFFIX_OPTIMIZE_V= LIBSUFFIX_DEBUG_V=_g LIB_VARIANT=$(LIBSUFFIX_$(VARIANT_V)_V) LIBSUFFIX_VA = $(LIB_VARIANT).a # 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.CC} ifeq (${DEPEND},$(wildcard ${DEPEND})) include ${DEPEND} # pull in dependencies if they exist endif ifndef AUTOMAKE # # Builtin targets for compilation variants # debug: $(MAKE) -f $(MAKEFILE) MAKEFILE=$(MAKEFILE) VARIANT=DEBUG endif # # VARIANT_VA will convert our ${ARCH} back into "" or "debug". # Handy when one makefile wants to hop over into a peer's tree and # build something "the same" way. # VARIANT-OPTIMIZE-v = VARIANT-DEBUG-v = debug VARIANT_VA = $(VARIANT-$(VARIANT_V)-v) # # TARGET_VA will convert $@ (expected to be 'debug' etc.) # into "" or "install" as appropriate. # Used for variant recursion. # TARGET_debug_V = all TARGET_VA = $(TARGET_$@_V) # # 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) ifndef AUTOMAKE preinstall-am: preinstall: preinstall-am distclean: distclean-am -$(RM) ./config.status clean: clean-am .PHONY: distclean distclean-am .PHONY: clean clean-am endif