summaryrefslogtreecommitdiff
path: root/include/makeinclude/platform_vxworks5.x_g++.GNU
blob: e329ec46aa464331502e26134d5ab045cc550227 (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
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
# $Id$
# VxWorks 5.2-5.3.1 with GNU g++ 2.7.2

#### Notes:
#### 1) This file requires that the WIND_BASE and WIND_HOST_TYPE environment
####    variables be set.  If the target CPU is not a PPC604, then your CPU
####    environment variable must be set.  On Windows hosts, you'll also need
####    to set PERL_PATH if perl is not on your path.
####
#### 2) If you have problems with munch output not being compilable
####    because it contains identifiers with ".", e.g., ".cpp", in them:
####    add a global variable or function to that .cpp file.  See
####    ace/IOStream_T.cpp for an explanation and example.

VXWORKS = 1
CROSS-COMPILE = 1

debug = 1
optimize = 1
shared_libs =
static_libs = 1


ifeq (,$(WIND_BASE))
  default:
        @ERROR: you must set your WIND_BASE environment variable
endif # WIND_BASE

ifeq (,$(WIND_HOST_TYPE))
  default:
        @ERROR: you must set your WIND_HOST_TYPE environment variable
endif # WIND_HOST_TYPE

HOST_DIR        = $(WIND_BASE)/host/$(WIND_HOST_TYPE)

ifeq (,$(findstring $(HOST_DIR)/bin,$PATH))
  PATH +=:$(HOST_DIR)/bin
endif # PATH


#### BEGIN target CPU-specific settings

#### This is kind of messy so that it can support multiple
#### targets.  You'll need to set CPU to a supported CPU
#### using one of these methods (unless your CPU is a PowerPC 604):
#### 1) create a $ACE_ROOT/include/makeinclude/platform_macros.GNU
####    that contains something like:
####
####  WIND_BASE = /project/doc/wind
####  WIND_HOST_TYPE = sun4-solaris2
####  CPU = I80486
####
####  include $(ACE_ROOT)/include/makeinclude/platform_vxworks5.x_g++.GNU
####
#### 2) modify the code below to set CPU, or
#### 3) set CPU on the command line, e.g., "make CPU=I80486"
ifeq ($(CPU),)
  CPU = PPC604
endif # default CPU

ifeq ($(CPU),PPC604)
  CFLAGS += -B$(GCCLIB_DIR)/ -DCPU=PPC604
  GCCLIB_DIR = $(HOST_DIR)/lib/gcc-lib/powerpc-wrs-vxworks/cygnus-2.7.2-960126
  TOOLENV = ppc
else
ifeq ($(CPU),I80486)
  CFLAGS += -DCPU=I80486 -m486
  TOOLENV = 386
endif # I80486
endif # PPC604

#### END target CPU-specific settings


#### Set up Win32 vs. Unix host specific macros.
ifeq ($(WIND_HOST_TYPE),x86-win32)
  CXX      = cc$(TOOLENV)
else  # ! x86-win32
  CXX      = g++$(TOOLENV)
  PIPE_OPT = -pipe
endif # ! x86-win32


CC              = cc$(TOOLENV)
CFLAGS          += -DVXWORKS -D_REENTRANT -ansi -fno-builtin -fno-defer-pop -fvolatile -nostdinc -nostdlib $(PIPE_OPT) -Wall
#### Note: -f-no-implicit-templates doesn't seem to work well with
####       g++ cygnus-2.7.2-960126 for pc486 target.  Some
####       member functions don't get instantiated.  Wind River knows
####       about this problem (SPR 8483).
CCFLAGS         += $(CFLAGS) #### -fno-implicit-templates
DCFLAGS         += -g
INCLDIRS        += -I$(WIND_BASE)/target/h
LD              = $(PERL_PATH) $(ACE_ROOT)/bin/ace_ld -c \
                  "$(COMPILE.c) -traditional" \
                  -m "munch" -n "nm$(TOOLENV)" ld$(TOOLENV)
LDFLAGS         += -X -r
#### WindRiver only recommends -O, not -O2, with some CPUs, including
#### the i386 family.  And -O2 causes some compilation failures.
OCFLAGS         += -O
PIC             =
AR              = ar$(TOOLENV)
ARFLAGS         = rv
RANLIB          = /bin/true


#### ld can't handle INCLDIRS, so override LINK definitions.
LINK.c           = override
LINK.c.override  = $(LD) $(LDFLAGS) $(LDLIBS) $(LIBS)

LINK.cc          = override
LINK.cc.override = $(LD)


#### The symbol table extractor is target-dependent.
ifeq ($(CPU),I80486)
  BINXSYM_NAME = xsymDec
else
ifeq ($(CPU),I80386)
  BINXSYM_NAME = xsymDec
else
  BINXSYM_NAME = xsym
endif # I80486
endif # I80386

#### To extract the symbol table from each executable, uncomment the POSTLINK
#### definition below.
## POSTLINK         = ; VX_CPU_FAMILY=$(TOOLENV) $(BINXSYM_NAME) < $@ > $@.sym