Files
rtems/make/leaf.cfg
Joel Sherrill 29e68b7584 Patch from Ralf Corsepius <corsepiu@faw.uni-ulm.de>:
This patch is an addition to "The big-patch"

  CHANGES:
  * FIX: c/Makefile.am: bogus comment which changed the behavior of
    c/Makefile.am removed
  * FIX: make/custom/ts_i386ex.cfg did not set HAS_NETWORKING correctly
    (Me thinks it might have been me who added this bogus setting :-).

  * NEW: removing make targets get, protos, debug_install, profile_install

  * NEW: replacing clobber with distclean
  * NEW: Reimplement distclean and clean as reverse depth first make
    targets (adaptation to automake's behavior)
  * NEW: removing RCS_CLEAN from make distclean (tools/build/rcs_clean is
    still in - remove it?)
  * NEW: "$(RM) Makefile" added to make distclean (adaptation to
    automake's behavior)
  * NEW: "$(RM) config.cache config.log" to CLOBBER_ADDITIONS in
    [lib|exec|tests]/Makefile.in (adaptation to automake's behavior)
  * NEW: "$(CLEAN_PROTOS)" removed (Not used anywhere)
  * NEW: binpatch.c moved from i386 bsp tools to tools/build (AFAIS,
    binpatch is not specific to the pc386 BSP at all)
  * NEW: AC_EXEEXT added to all configure scripts which contain AC_PROG_CC
    (Cygwin support)

  * NEW/Experimental: An experimental implementation of temporary
    installation tree support in libbsp/i386/pc386/tools/Makefile.am, based
    on dependency tracking with make, instead of applying INSTALL_CHANGE.


  REMARK:
  * This patch is small in size, but changes the behavior of "make
    clean|distclean|clobber" basically.
  * This patch does not alter building/compiling RTEMS, ie. there should
    be no need to rerun all "make all" building tests.

  KNOWN BUGS:
  * make RTEMS_BSP="..." distclean in c/ runs "make distclean" in BSPs
    subdirectories passed through RTEMS_BSP and in "c/." only, but does not
    descend into other BSP subdirectories previously configured with
    different settings of make RTEMS_BSP="...".
    => Workaround: always use the same setting of RTEMS_BSP when working
    inside the build-tree.

  * "make [distclean|clean]" do not clean subdirectories, which have been
    configured at configuration time, but  which are not used due to
    make-time configuration (e.g. macros/networking/rdgb subdirectories).
    This will problem will vanish by itself when migrating from make-time to
    configuration-time configuration

  APPLYING THE PATCH

      mv c/src/lib/libbsp/i386/pc386/tools/binpatch.c tools/build
      patch -p1 < rtems-rc-19990709-2.diff
      autogen
1999-07-26 21:26:44 +00:00

129 lines
3.6 KiB
INI

#
# $Id$
#
# make/leaf.cfg
#
# Make(1) configuration file include'd by all leaf-node Makefiles
#
# get most stuff done
# include $(RTEMS_ROOT)/make/main.cfg
#
# 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 compiler
# This is almost always the "target" compiler.
# But sometimes, you have to build something on the host.
# Allow for that by allowing individual Makefiles specify $(USE_HOST_COMPILER)
# This will not change $(ARCH) -- binaries will still be place as per target
ifeq (,$(USE_HOST_COMPILER))
include ${CONFIG.$(TARGET_ARCH).CC}
else
include $(CONFIG.$(HOST_ARCH).CC)
endif
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)
# -$(RM) -r $(IMPORT_SOURCE)
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