summaryrefslogtreecommitdiff
path: root/ecos/examples/build_Make.params
blob: 7e868b7474b6802a8e48fd1e788b7b385ab8530c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#! /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