summaryrefslogtreecommitdiffstats
path: root/make/custom/Linux-posix.cfg
blob: 8327c170f0fe2fbe44e210247755a0292f6a9597 (plain) (blame)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
#
#  Config file for the Linux 1.x based RTEMS UNIX 
#
#  $Id$
#

RTEMS_CPU=unix
RTEMS_CPU_FAMILY=i386
RTEMS_CPU_MODEL=i486dx
RTEMS_UNIX_FLAVOR=linux

# This is the actual bsp directory used during the build process.
RTEMS_BSP_FAMILY=posix

# share the posix bsp
TARGET_ARCH=o-linux1
RTEMS_BSP=posix

include $(RTEMS_ROOT)/make/custom/default.cfg

## Target compiler config file, if any
CONFIG.$(TARGET_ARCH).CC = $(RTEMS_ROOT)/make/compilers/gcc-target-default.cfg

# DO NOT Use the LIBC support for CYGNUS newlib
RTEMS_USE_NEWLIB=no

# RTEMS_LIBC_DIR must already be set (by configuration) DOES NOT MATTER
LIBC_DEFINES=-DRTEMS_UNIXLIB -DRTEMS_UNIX -DMALLOC_PROVIDED -DRTEMS_DEBUG

# The following define the memory reserved in the executable for the
# RTEMS Workspace and the C Program Heap.
LIBC_DEFINES += -DWORKSPACE_MB=2
LIBC_DEFINES += -DHEAPSPACE_MB=1


# Define this to yes if C++ is included in the development environment
# This requires that at least the GNU C++ compiler and libg++ be installed.
ifeq ($(RTEMS_HAS_CPLUSPLUS),yes)
HAS_CPLUSPLUS=yes
# No need to set it, gcc knows about them
# LIBCC_INCLUDE=/usr/include/g++
CPLUS_LD_LIBS=-lstdc++
CPLUS_LD_LIBS += $(PROJECT_RELEASE)/lib/librtems++$(LIBSUFFIX_VA)
else
HAS_CPLUSPLUS=no
endif

# Define this to yes if this target supports multiprocessor environments.
HAS_MP=yes

# This target does NOT support the KA9Q TCP/IP stack so ignore requests
# to enable it.
HAS_KA9Q=no

# This target does NOT support the POSIX API.
HAS_POSIX_API=no

# optimize flag: typically -0, could use -O4 or -fast
# -O4 is ok for RTEMS
CFLAGS_OPTIMIZE_V = -O2

#  This section makes the target dependent options file.

#  NDEBUG (C library)
#     if defined asserts do not generate code.  This is commonly used
#     as a command line option.
#
#  RTEMS_TEST_NO_PAUSE (RTEMS tests)
#     do not pause between screens of output in the rtems tests
#
#  NO_TABLE_MOVE (SPARC PORT)
#     do not have a second trap table -- use the BSP's
#
#  STACK_CHECKER_ON (RTEMS support code)
#     If defined, stack bounds checking is enabled.
#
#  STACK_CHECKER_REPORT_USAGE (RTEMS support code)
#     If this and STACK_CHECKER_ON are defined, then a report on stack usage
#     per task is printed when the program exits.
#
#  RTEMS_DEBUG (RTEMS)
#     If defined, debug checks in RTEMS and support library code are enabled.
#     
#  RTEMS_UNIX (unix)
#     Define this to indicate this is an RTEMS UNIX port.

define make-target-options
	echo "/* #define NDEBUG 1 */ "                     >>$@
	echo "#define RTEMS_TEST_NO_PAUSE 1"               >>$@
	echo "/* #define STACK_CHECKER_ON  1 */"           >>$@
	echo "/* #define STACK_CHECKER_REPORT_USAGE  1 */" >>$@
	echo "/* #define RTEMS_DEBUG  1 */"                >>$@
	echo "#define RTEMS_UNIX 1 "                       >>$@
endef

ifeq ($(RTEMS_USE_GCC272),yes)
define make-exe
	$(CC) -o $@ $(LINK_FILES) $(LD_LIBS) $(LIBC_LIBM) $(LIBC_LIBC)
	$(NM) -ng $@ > $(basename $@).num
	$(SIZE) $@
endef
else
#
# gcc28 not yet supported
#
endif


# *****************************************************************
# Miscellaneous additions go here

# Setting formerly contained in gcc-linux1.cfg

# Not applicable - let's override 'em
LINKCMDS=
START_FILE=
START_BASE=

# Here is the rule to actually build a $(ARCH)/foo.exe
# It also builds $(ARCH)/foo.sr and $(ARCH)/foo.nm
# Usage ref: src/tests/sptest/sp1/Makefile
#
# 'NODE' is set to 1 or 2 for multi cpu tests (ref: mptests/mp01/node1/Makefile)
# If NODE is set as an environment variable, don't trust it, zero it out.
# (NODE turns out to be a very common environment variable)
ifeq (,$(NODE))
NODE=0
else
ifeq "$(origin NODE)" "environment"
NODE=0
endif
endif

# Workaround for missing ranlib support in RTEMS
MKLIB=$(AR) s $(@) ; echo library is complete: