view examples/build_Make.params @ 3173:afb59e9b7339

* cdl/hal_arm.cdl: Add CDL to control whether both IRQs and FIQs are disabled in critical sections, or only IRQs. The default is to disable both and translate any FIQs into IRQs for delivery. The alternative is for FIQs to essentially exist outside eCos. * include/hal_arch.h (CPSR_THREAD_INITIAL): * include/hal_intr.h (CPSR_INTR_MASK, HAL_*_INTERRUPTS) (HAL_*_FIQ): Add definitions for separating FIQ from IRQ. * src/hal_mk_defs.c (main): * src/vectors.S (start, FIQ, IRQ, spurious_IRQ): (hal_*_interrupts, hal_*_FIQ, __fiq_stack_base): Add support for separating FIQ from IRQ in critical section processing.
author nickg
date Fri, 11 May 2012 10:24:33 +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