view examples/build_Make.params @ 3154:2dde4203a2c7

* cdl/io_can.cdl: support for add/remove compiler flags * doc/can.sgml, doc/can_driver_doc.html: updated doc reflecting API changes (range/mask filtering, listen-only mode, return values for xmt_msg/rcv_event, new flags). * include/can.h: given in a match the types of function pointers for can_callbacks_t according to the changes made in can.c. * include/canio.h: flags field in event enlarged to 32 bits to fit new events 'CYGNUM_CAN_EVENT_ERR_ACTIVE' and 'CYGNUM_CAN_EVENT_OVERRUN_RX_HW'. Made a 'flag' typedef. cyg_can_event fields reordered so flags size change keeps events the same size. Defined new filtering capabilities (range/mask). New convenience macro CYGNUM_CAN_EVENT_ALL. New listen-only mode. * src/can.c: can_rcv_event() and can_xmt_msg() now returns cyg_bool (were 'void'). flags using cyg_can_event_flags_t type. [ Bugzilla 1001453 ]
author sergeig
date Thu, 09 Feb 2012 21:16:48 +0000
parents ba637aa555ec
children
line wrap: on
line source

#! /bin/sh

# This script will set up a Makefile fragment with 
# platform specifics.  This fragement can be used by
# the automatically generated Makefile (via the script
# 'build_Makefile')

# Copied from 'makefile' in the "install" tree

ECOS_BUILD_DIR=${1-`pwd`}
ECOS_INSTALL_DIR=`echo ${ECOS_BUILD_DIR}/install`
if [ ! -d ${ECOS_BUILD_DIR}/install ]; then
  if [ ! -d ${ECOS_BUILD_DIR}/*_build ]; then
    echo "Not an eCos install tree"
    echo "usage: <eCos_repository>/build_Make.params [<eCos_install_dir>]"
    echo "... where <eCos_install_dir> is the directory which contains"
    echo "    the *.ecc configuration file used to build the kernel"
    exit
  else
    ECOS_INSTALL_DIR=`echo ${ECOS_BUILD_DIR}/*_install`
    ECOS_BUILD_DIR=`echo ${ECOS_BUILD_DIR}/*_build`
  fi
fi

cat <<EOF >Make.params

# Copied from 'makefile' in the "install" tree

EOF

grep export ${ECOS_BUILD_DIR}/makefile >>Make.params

cat <<EOF >>Make.params

#
# Target specific flags, etc.
#

EOF

cat ${ECOS_INSTALL_DIR}/include/pkgconf/ecos.mak >>Make.params

#
# Add CFLAGS manipulation - this should match <ecos>/packages/pkgconf/rules.mak
#

cat <<EOF >>Make.params

#
# Modify CFLAGS to match newer compilers
#
ACTUAL_CFLAGS = \$(ECOS_GLOBAL_CFLAGS)
ACTUAL_CXXFLAGS = \$(ECOS_GLOBAL_CFLAGS)
ACTUAL_LDFLAGS = \$(ECOS_GLOBAL_LDFLAGS)

# GCC since 2.95 does -finit-priority by default so remove it from old HALs
ACTUAL_CFLAGS := \$(subst -finit-priority,,\$(ACTUAL_CFLAGS))

# -fvtable-gc is known to be broken in all recent GCC.
ACTUAL_CFLAGS := \$(subst -fvtable-gc,,\$(ACTUAL_CFLAGS))

# Expand inline functions
ACTUAL_CFLAGS := -finline-limit=7000 \$(ACTUAL_CFLAGS)

# Separate C++ flags out from C flags.
ACTUAL_CFLAGS := \$(subst -fno-rtti,,\$(ACTUAL_CFLAGS))
ACTUAL_CFLAGS := \$(subst -frtti,,\$(ACTUAL_CFLAGS))
ACTUAL_CFLAGS := \$(subst -Woverloaded-virtual,,\$(ACTUAL_CFLAGS))
ACTUAL_CFLAGS := \$(subst -fvtable-gc,,\$(ACTUAL_CFLAGS))

ACTUAL_CXXFLAGS := \$(subst -Wstrict-prototypes,,\$(ACTUAL_CXXFLAGS))

EOF