summaryrefslogblamecommitdiffstats
path: root/make/leaf.cfg
blob: 7f0bfc51b525c41d7e7a39f75d99acc546bc20d9 (plain) (tree)
1
2
3
4
5
6
7
8







                                                                   



























                                                                         

                                                          
                                                                            
                    



                                                                         
               


                                          
      
                                                                    
                                        
                                            
                                              

                                                     
        
                                
                                             
                                            
                                                
                                                         
     






                                                                           


                             



                                 
                                                                      






                                        







                                                                               


                        



                                  
 
                                   



                                                                              


                                                         
 

                                                               
 
               

                         

                       

                              



                              
     
#
#  $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.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) "ARCH=o-debug" \
      "CFLAGS_DEBUG=$(CFLAGS_DEBUG_V)" \
      "CXXFLAGS_DEBUG=$(CXXFLAGS_DEBUG_V)" \
      "CFLAGS_OPTIMIZE=$(CFLAGS_OPTIMIZE_V)" \
      "LDFLAGS_DEBUG=$(LDFLAGS_DEBUG_V)" $(TARGET_VA)

profile:
	$(MAKE) -f $(MAKEFILE) \
      MAKEFILE=$(MAKEFILE) "ARCH=o-profile" \
      "CFLAGS_PROFILE=$(CFLAGS_PROFILE_V)" \
      "CXXFLAGS_PROFILE=$(CXXFLAGS_PROFILE_V)" \
      "LDFLAGS_PROFILE=$(LDFLAGS_PROFILE_V)" $(TARGET_VA)
endif

#
# 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-o-optimize-v =
VARIANT-o-debug-v = debug
VARIANT-o-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_o-optimize_V=
LIBSUFFIX_o-debug_V=_g
LIBSUFFIX_o-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)

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